推荐连接:
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');
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框架之前的必要环境 php环境:网上有集成好的服务器,例如wamp,phpstudy.当然你可以自己搭建属于自己的环境.其中php必须是7.1版本以上: compose:php的 ...
- 2. laravel 5.5 学习 过程中 遇到问题 的 链接
关于 laravel 5.5 的文档 网络上已经太多 就不些太多重复的话了 在以后的 工作 中遇到问题的 查询到的解决方案 或者 相关文档将会具体写在这里 laravel 5.5 中文文档 https ...
- npm使用过程中的一些错误解决办法及npm常用命令
node,npm在前端开发流程中提供了非常完善的自动化工具链,但是同样由于其复杂性导致有很多奇奇怪怪的问题.本文将记录使用过程中出现的一些问题及其解决方法备案. 国内由于gfw问题,导致很多国外的网站 ...
- 【转】npm使用过程中的一些错误解决办法及npm常用命令
原文 node,npm在前端开发流程中提供了非常完善的自动化工具链,但是同样由于其复杂性导致有很多奇奇怪怪的问题.本文将记录使用过程中出现的一些问题及其解决方法备案. 国内由于gfw问题,导致很多国外 ...
- npm使用过程中的一些错误解决办法及npm常用命令和技巧
node,npm在前端开发流程中提供了非常完善的自动化工具链,但是同样由于其复杂性导致有很多奇奇怪怪的问题.本文将记录使用过程中出现的一些问题及其解决方法备案. 国内由于gfw问题,导致很多国外的网站 ...
- 使用Swoole加速Laravel(正式环境中)
1 Laravel的速度瓶颈在哪? 1.1 已有的一些优化方法 1.1.1 laravel官方提供了一些优化laravel的优化方法 php artisan optimize php artisan ...
- WINDOWS系统下MYSQL安装过程中的注意事项
1.首先MySQL的安装方式有两种:一种是MSI安装方式,很简单就像安装Windows软件一样.另外一种就是ZIP安装方式.这种相对而言比较麻烦.新手推荐MSI安装方式. 安装方式有以下两种: MSI ...
- 【转】SQL Server -- 已成功与服务器建立连接,但是在登录过程中发生错误
SQL Server -- 已成功与服务器建立连接,但是在登录过程中发生错误 最近在VS2013上连接远程数据库时,突然连接不上,在跑MSTest下跑的时候,QTAgent32 crash.换成IIS ...
- zabbix 3.0.3 (nginx)安装过程中的问题排错记录
特殊注明:安装zabbix 2.4.8和2.4.6遇到2个问题,如下:找了很多解决办法,实在无解,只能换版本,尝试换(2.2.2正常 | 3.0.3正常)都正常,最后决定换3.0.3 1.Error ...
随机推荐
- (C/C++学习笔记) 二十一. 异常处理
二十一. 异常处理 ● 异常的概念 程序的错误通常包括:语法错误.逻辑错误.运行异常. 语法错误指书写的程序语句不合乎编译器的语法规则,这种错误在编译.连接时由编译器指出. 逻辑错误是指程序能顺利运行 ...
- Cracking The Coding Interview 4.7_暂存
//原文: // // You have two very large binary trees: T1, with millions of nodes, and T2, with hundreds ...
- DevExpress WinForms v18.2新版亮点(八)
买 DevExpress Universal Subscription 免费赠 万元汉化资源包1套! 限量15套!先到先得,送完即止!立即抢购>> 行业领先的.NET界面控件2018年第 ...
- Android开发 ---Button的OnClickListener的三种实现方法
button的OnClickListener的三种实现方法 onclick事件的定义方法,分为三种,分别为 1.在xml中进行指定方法: 2.在Actitivy中new出一个OnClickListen ...
- 2019-03-29-day022-封装与类方法与静态方法
昨日回顾 抽象类 规范代码,规定子类必须实现某个方法的名字 不能实例化 from abc import ABCMeta, abstractmethod class 抽象类名(metaclass=ABC ...
- Java学习笔记10(面对对象:构造方法)
在开发中经常需要在创建初始化对象时候明确对象的属性值, 比如Person对象创建的时候就给Person的属性name,age赋值, 这里就要用到构造方法: 构造方法是类的一种特殊方法,它的特殊性体现在 ...
- git解决not a git repository
意思是说没有库,需要你创建 git init zzz zzz文件夹就会出现在你的项目中,里面就会有.git文件,将里面的.git剪切到与项目同一级中 关注微信小程序
- 阿里云配置ssh
1.申请证书,从我的域名列表 右侧的操作栏中点击- ssl 2.配置 nginx config -> /etc/nginx/sites-enabled/default 底部添加:(我的是dj ...
- ISO-8859-1和GBK互转
String slogn = "极简主义"; byte[] bytes = slogn.getBytes("GBK");// 编码:字符串变成字节数组 输入 参 ...
- 性能测试-10.数据分析Analysis
Analysis Summary 平均响应时间(Average TransactionResponse Time) 每秒响应数(Transactions per Second) 1.Vuser Ru ...