推荐连接:
laravel辅助函数总结:https://laravel-china.org/docs/laravel/5.5/helpers
基于 Laravel 集成的 Monolog 库对日志进行配置和记录  http://laravelacademy.org/post/1878.html
laravel中缓存的使用 https://blog.csdn.net/huang2017/article/details/70228473
laravel原理机制分析 https://www.cnblogs.com/XiongMaoMengNan/p/6644892.html
laravel原理分析专栏 https://laravel-china.org/laravel-source
laravel服务容器实现原理 https://segmentfault.com/a/1190000008892574
laravel中间件原理 https://segmentfault.com/a/1190000009988874
laravel facade实现原理 https://blog.csdn.net/hizzana/article/details/53212323

Request中的操作:
获取用户提交的值:Input::get('name');
获取用户提交的值并指定默认值:Input::get('name', 'Sally');
用户提交的信息是否存在:Input::has('name')
获取所有用户提交的信息:Input::all()
获取其中几项指定的信息:Input::only('username', 'password');
获取除几项之外的提交信息:Input::except('card');
访问用户提交的数组:Input::get('products.0.name');
cookie操作:
获取Cookie中的值:Cookie::get('name')
添加一个Cookie:
$response = Response::make('Hello World');
response−>withCookie(Cookie::make(′name′,′value′,response−>withCookie(Cookie::make(′name′,′value′,minutes));
如果想在Response之前设置Cookie,使用Cookie::queue()
Cookie::queue(name,name,value, $minute);
Session操作:
存储一个变量:Session::put('key', 'value');
读取一个变量:Session::get('key');
读取一个变量或者返回默认值:Session::get('key', 'default');
检查一个变量是否存在:Sesssion::has('key');
删除一个变量:Session::forget('key');
删除所有Session变量:Session::flush();
文件上传操作:
获取用户上传文件:$file = Input::file('photo');
判断是否有上传这个文件:Input::hasFile('photo');
移动上传的文件:
Input::file('photo')->move($destinationPath);
Input::file('photo')->move(destinationPath,destinationPath,fileName);
获取上传文件大小:
Input::file('photo')->getSize();
获取上传文件类型:
Input::file('photo')->getMimeType();
获取用户请求路径:Request::path();
获取用户请求URL:Request::url();
获取Header中的信息:Request::header('Content-Type');
获取SERVER中的信息:Request::server('PATH_INFO');
重定向:
重定向: return Redirect::to('user/login');
有参数的重定向: return Redirect::to('user/login')->with('message', 'Login Failed');
重定向到路由:return Redirect::route('profile', array('user' => 1));
返回重定向到Action:return Redirect::action('UserController@profile', array('user' => 1));
视图层:
传递数据给视图:$view = View::make('greeting')->with('name', 'Steve');
将一个视图传递给另一个视图:$view = View::make('greeting')->nest('child', 'child.view');
返回json:return Response::json(array('name' => 'Steve', 'state' => 'CA'));
返回jsonp:return Response::json(array('name' => 'Steve', 'state' => 'CA'))->setCallback(Input::get('callback'));
返回下载文件:
return Response::download($pathToFile);
return Response::download(pathToFile,pathToFile,status, $headers);

// 多where条件查询  
Student::scopeMultiwhere([‘female’=>1, ’teacher_id’ => 4, ‘class_id’ => 3])->get();
    public function scopeMultiwhere($query, $arr)
    {
        if (!is_array($arr)) {
            return $query;
        }
 
        foreach ($arr as $key => $value) {
            $query = $query->where($key, $value);
        }
        return $query;
    }

 
public function rules()
{
    return [
        'location_num' => [
            'required',
            'integer',
            'numeric',
            //'regex:/^([1-9]|^[1][0-9]{1}$|20)$/'//1-20的正整数
            'regex:/^([1-9])$/'//1-9的正整数
        ],
        'award_code' => 'required|string',
        'award_probability' => [
            'required',
            'integer',
            'numeric',
            'regex:/^(0|[1-9]\d?|100)$/'//0-100的正整数
        ],
    ];
}

 
$goodsShow = Goods::where('cate_id','=',$cate_id)
    ->where(function($query){
        $query->where('status','<','61')
            ->orWhere(function($query){
                $query->where('status', '91');
            });
    })->first();
这一段其实执行的就是where cate_id = $cate_id AND (status < 61 OR status = 91)
 
$updateOk = SunBall::query()->where('player_code', $this->playerCode)->where(function ($query) {
                $beginTime = date('Y-m-d H:i:s', time() - 3 * 24 * 3600);
                $query->where('remained_sunbean', '<=', 0)
                    ->orWhere('created_at', '<', $beginTime);
            })->update(['is_available' => 0]);
 
 
DB::table('users')
            ->join('contacts', 'users.id', '=', 'contacts.user_id')
            ->join('orders', 'users.id', '=', 'orders.user_id')
            ->select('users.id', 'contacts.phone', 'orders.price');
 
 
 
DB::table('users')
            ->whereExists(function($query)
            {
                $query->select(DB::raw(1))
                      ->from('orders')
                      ->whereRaw('orders.user_id = users.id');
            })
            ->get();
 
select * from A where(a=1,b like %123%) or (a=1,b like %456%)
 
$users = DB::table('users')
                     ->select(DB::raw('count(*) as user_count, status'))
                     ->where('status', '<>', 1)
                     ->groupBy('status')
                     ->get();
 
 
 
A::where(function ($query) {
    $query->where('a', 1)->where('b', 'like', '%123%');
})->orWhere(function ($query) {
    $query->where('a', 1)->where('b', 'like', '%456%');
})->get();
 
 
 
 
DB::table('users')
        ->join('contacts', function($join)
        {
            $join->on('users.id', '=', 'contacts.user_id')->orOn(...);
        })
        ->get();
 
DB::table('users')
            ->where('name', '=', 'John')
            ->orWhere(function($query)
            {
                $query->where('votes', '>', 100)
                      ->where('title', '<>', 'Admin');
            })
            ->get();
 
 
 
$winningInfo = AwardRecord::query()->select(['t_award.award_display_name', 't_award.code', 't_award.display_price'])
    ->leftjoin('t_award', 't_award.code', '=', 't_award_record.award_code')
    ->whereRaw("t_award_record.player_code = (SELECT t_player.`code` FROM t_player WHERE t_player.user_id=$memberId)")
    ->paginate(15);

 
批量添加
$okInverter = \DB::connection('pvm')->table('t_inverter')->insert($invertersInsertData);//$invertersInsertData是二维数组
批量更新
$this->plantDataRep->updateBatch('t_pv_plant_data', $updateData, 'pvm');//$updateData 是二维数组
 
/**
 * @desc 批量更新
 * @createTime 2017-08-24
 * @author yanglibin@sunallies.com
 * @param string $tableName
 * @param array $multipleData
 * @param string $db
 * @return bool|int
 */
public function updateBatch($tableName = "", $multipleData = array(), $db = 'mysql' )
{
    if ($tableName && !empty($multipleData)) {
        // column or fields to update
        $updateColumn = array_keys($multipleData[0]);
        $referenceColumn = $updateColumn[0]; //e.g id
        unset($updateColumn[0]);
        $whereIn = "";
 
        $q = "UPDATE " . $tableName . " SET ";
        foreach ($updateColumn as $uColumn) {
            $q .= $uColumn . " = CASE ";
 
            foreach ($multipleData as $data) {
                $q .= "WHEN " . $referenceColumn . " = " . $data[$referenceColumn] . " THEN '" . $data[$uColumn] . "' ";
            }
            $q .= "ELSE " . $uColumn . " END, ";
        }
        foreach ($multipleData as $data) {
            $whereIn .= "'" . $data[$referenceColumn] . "', ";
        }
        $q = rtrim($q, ", ") . " WHERE " . $referenceColumn . " IN (" . rtrim($whereIn, ', ') . ")";
 
        // Update
        return \DB::connection($db)->update(\DB::connection($db)->raw($q));
 
    } else {
        return false;
    }
 
}

 

 

 


 
php artisan 的缓存命令如 php artisan config:clear
 
config:clear
debugbar:clear
cache:clear
route:clear
view:clear
config:cache
schedule:run
 

 


[program:pvm.center.collectorDeviceSync]
process_name=%(program_name)s_%(process_num)02d
command=php /home/www/sunallies-pvm-center-refactor/artisan queue:work --queue=pvm.center.collectorDeviceSync --sleep=1 --tries=3 --daemon
autostart=true
autorestart=true
user=root
numprocs=2
redirect_stderr=true
stdout_logfile=/home/www/sunallies-pvm-center-refactor/storage/logs/worker.log
 

 
Laravel 服务容器是管理类依赖和运行依赖注入的有力工具。依赖注入是一个花俏的名词,它实质上是指:类的依赖通过构造器或在某些情况下通过「setter」方法进行「注入」
 
 

 
$res = DB::table('topics')->select('topics.*', 'b.username',
            'b.avatar', 'c.username as rname', 'd.cname')
 
            ->where('topics.is_hidden', 0)
 
            ->leftJoin('users AS b', 'b.uid', '=', 'topics.uid')
 
            ->leftJoin('users AS c', 'c.uid', '=', 'topics.ruid')
 
            ->leftJoin('nodes AS d', 'd.node_id', '=', 'topics.node_id')
 
            ->orderBy('ord', 'desc')
 
            ->take($limit)->get();
 

 
将模型转换成数组
$user = User::with('roles')->first();
return $user->toArray();
 
注意:也可以把整个的模型集合转换成数组:
 
return User::all()->toArray();
 
将模型转换成 JSON
 
 
要把模型转换成 JSON,可以使用 toJson 方法:
 
 
return User::find(1)->toJson();
从路由中返回模型

 
//Laravel 5 中需要开启QueryLog
\DB::connection()->enableQueryLog();
//这里为查询操作
print_r(\DB::getQueryLog()); 

laravel使用过程中一些总结的更多相关文章

  1. laravel框架安装过程中遇到的问题

    1.安装laravel框架之前的必要环境 php环境:网上有集成好的服务器,例如wamp,phpstudy.当然你可以自己搭建属于自己的环境.其中php必须是7.1版本以上: compose:php的 ...

  2. 2. laravel 5.5 学习 过程中 遇到问题 的 链接

    关于 laravel 5.5 的文档 网络上已经太多 就不些太多重复的话了 在以后的 工作 中遇到问题的 查询到的解决方案 或者 相关文档将会具体写在这里 laravel 5.5 中文文档 https ...

  3. npm使用过程中的一些错误解决办法及npm常用命令

    node,npm在前端开发流程中提供了非常完善的自动化工具链,但是同样由于其复杂性导致有很多奇奇怪怪的问题.本文将记录使用过程中出现的一些问题及其解决方法备案. 国内由于gfw问题,导致很多国外的网站 ...

  4. 【转】npm使用过程中的一些错误解决办法及npm常用命令

    原文 node,npm在前端开发流程中提供了非常完善的自动化工具链,但是同样由于其复杂性导致有很多奇奇怪怪的问题.本文将记录使用过程中出现的一些问题及其解决方法备案. 国内由于gfw问题,导致很多国外 ...

  5. npm使用过程中的一些错误解决办法及npm常用命令和技巧

    node,npm在前端开发流程中提供了非常完善的自动化工具链,但是同样由于其复杂性导致有很多奇奇怪怪的问题.本文将记录使用过程中出现的一些问题及其解决方法备案. 国内由于gfw问题,导致很多国外的网站 ...

  6. 使用Swoole加速Laravel(正式环境中)

    1 Laravel的速度瓶颈在哪? 1.1 已有的一些优化方法 1.1.1 laravel官方提供了一些优化laravel的优化方法 php artisan optimize php artisan ...

  7. WINDOWS系统下MYSQL安装过程中的注意事项

    1.首先MySQL的安装方式有两种:一种是MSI安装方式,很简单就像安装Windows软件一样.另外一种就是ZIP安装方式.这种相对而言比较麻烦.新手推荐MSI安装方式. 安装方式有以下两种: MSI ...

  8. 【转】SQL Server -- 已成功与服务器建立连接,但是在登录过程中发生错误

    SQL Server -- 已成功与服务器建立连接,但是在登录过程中发生错误 最近在VS2013上连接远程数据库时,突然连接不上,在跑MSTest下跑的时候,QTAgent32 crash.换成IIS ...

  9. zabbix 3.0.3 (nginx)安装过程中的问题排错记录

    特殊注明:安装zabbix 2.4.8和2.4.6遇到2个问题,如下:找了很多解决办法,实在无解,只能换版本,尝试换(2.2.2正常 | 3.0.3正常)都正常,最后决定换3.0.3 1.Error ...

随机推荐

  1. Myeclipse代码格式化

    Shift+Ctrl+F 别和搜狗输入法冲突,把搜狗输入法的设置取消掉. 当然,还可以设置,自动格式化: 步骤:

  2. Android : App通过LocalSocket 与 HAL间通信

    LocalSocket其通信方式与Socket差不多,只是LocalSocket没有跨越网络边界.对于*nix系统来说,“一切皆为文件”,Socket也不例外,Socket按照收发双方的媒介来说有三种 ...

  3. VCL界面控件DevExpress VCL Controls发布v18.2.4|附下载

    DevExpress VCL Controls是 Devexpress公司旗下最老牌的用户界面套包.所包含的控件有:数据录入,图表,数据分析,导航,布局,网格,日程管理,样式,打印和工作流等,让您快速 ...

  4. TortoiseGit 的下载与安装

    一.下载 访问https://tortoisegit.org/ 二.安装 然后就next,install 配置参考:2. TortoiseGit安装与配置

  5. AVD Manager 模拟器使用

    一.模拟器配置 1.双击启动AVD Manager,进入配置界面 2.点Create按钮创建 3.配置模拟器基本信息 --AVD Name:设备名称,自己定义一个,用英文(不要用中文) --Devic ...

  6. 20165326 java第二周学习笔记

    学习笔记 一.理论学习 基本数据类型与数组 标识符的第一个字符不能是数字:标识符不能为关键字. 基本数据类型多数与c语言相同.重点如下: 1.逻辑类型boolean赋值true/false 2.浮点数 ...

  7. Pycharm连接Git及使用

    环境: Git-2.7.2-32-bit_setup.1457942412.exe TortoiseGit-2.4.0.2-64bit.msi 安装配置Git后,打开Pycharm.file--> ...

  8. django面试六

    Redis缓存击穿.缓存雪崩.缓存重建 回答参考: 缓存击穿: 当一个连接访问缓存数据库中不存在的数据时,会直接通过缓存数据库到后端数据库中查找数据,但如果有大量连接在查询一个不存在的数据,就会有大量 ...

  9. springboot (spring mvc)集成swagger

    最近用springboot构建rest接口,考虑到最方便的验证接口,想到了引入swagger. 基本的步骤大致如下: 1.pom中引入swagger依赖: <dependency> < ...

  10. Python 静态方法

    class Person: @staticmethod # 静态方法 def yue(): print("fsadf") # 静态方法可以使用对象访问. 也可以使用类名访问. 但是 ...