![54288b855547e61590fa82ebf13c703b.png](https://i-blog.csdnimg.cn/blog_migrate/765563afeaa8b7aef3a6b5de5d916203.jpeg)
用Laravel也有不短的时间了,也用过不少版本了,以下代码是在日常项目中收集,作为笔记,也分享出来,希望对你有点用处。
注:版本没标注,若有不兼容的问题,微调即可。
验证
不太习惯单独弄个Request验证类,比较习惯下面的写法:
use
自定义验证
比如常用的手机号验证:
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
关联查询
- 一对一
// Model定义,关联外键
- 一对多
//Model
统一异常处理
这个可以参见之前的文章Laravel 统一错误处理为 JSON
队列
失败队列入库
- 生成表
生成failed_jobs表
php artisan queue:failed-table
php artisan migrate
- 单独处理
可以在Job中单独处理失败,Job失败也会写入上面生成的failed_jobs表
/**
重试队列
有时候代码有漏洞可能会有队列执行失败的状况,这时候我们就需要重试。
- 查看所有失败
php artisan queue:failed
- 重试所有失败
php artisan queue:retry all
- 重试单个失败
php artisan queue:retry 13
- 清空失败(重要的队列数据万不可这么操作)
php artisan queue:flush
另外,手动去操作确实不太方便,你可以设置个cron,定时重试所有失败,但务必要注意消息提醒,以免队列一直重试一直失败,往复运行,影响了正常的队列性能。
其他常用代码
文件上传OSS
<?
json输出
protected
进程锁
- 普通版本
// $autoDel字段删除,$ttl 过期时间,秒
- lua版本
public
说明:Redis::eval行第一个1表示key的数量,是为了区分KEYS和ARGV。
JWT
Laravel 配合 jwt 使用
系统通知到钉钉
我们可以使用队列,把一些重要的通知投到钉钉,主要代码如下:
<?
说明:通知内容可以自定义,添加智能机器人操作比较简单就不赘述了
- 钉钉文档
后台操作日志
利用 Laravel 中间件给后台加个操作日志
Excel
Laravel配合MaatwebsiteExcel 实现 Excel 导入
Laravel 配合 MaatwebsiteExcel 实现 Excel 导出
陆续补充中...