用Laravel也有不短的时间了,也用过不少版本了,以下代码是在日常项目中收集,作为笔记,也分享出来,希望对你有点用处。
注:版本没标注,若有不兼容的问题,微调即可。
验证
不太习惯单独弄个Request验证类,比较习惯下面的写法:
自定义验证
比如常用的手机号验证:
php artisan make:rule Mobile
然后改一下:
/*** Mobile主要代码* 验证是否通过** @param string $attribute* @param mixed $value* @return bool*/public function passes($attribute, $value){//return preg_match('/^1d{10}$/', $value);}/*** 错误信息** @return string*/public function message(){return '手机号格式不正确';}
然后这么用起来:
$columns = ['college' => 'required|max:32','mobile' => ['required', new Mobile()],'qq' => 'required',
];
ORM
关联查询
统一异常处理
这个可以参见之前的文章Laravel 统一错误处理为 JSON
队列
失败队列入库
生成failed_jobs表
php artisan queue:failed-table
php artisan migrate
可以在Job中单独处理失败,Job失败也会写入上面生成的failed_jobs表
重试队列
有时候代码有漏洞可能会有队列执行失败的状况,这时候我们就需要重试。
php artisan queue:retry all
php artisan queue:retry 13
- 清空失败(重要的队列数据万不可这么操作)
另外,手动去操作确实不太方便,你可以设置个cron,定时重试所有失败,但务必要注意消息提醒,以免队列一直重试一直失败,往复运行,影响了正常的队列性能。
其他常用代码
文件上传OSS
json输出
进程锁
// $autoDel字段删除,$ttl 过期时间,秒
说明:Redis::eval行第一个1表示key的数量,是为了区分KEYS和ARGV。
JWT
Laravel 配合 jwt 使用
系统通知到钉钉
我们可以使用队列,把一些重要的通知投到钉钉,主要代码如下:
说明:通知内容可以自定义,添加智能机器人操作比较简单就不赘述了
后台操作日志
利用 Laravel 中间件给后台加个操作日志
Excel
Laravel配合MaatwebsiteExcel 实现 Excel 导入
Laravel 配合 MaatwebsiteExcel 实现 Excel 导出
陆续补充中...