本文主要记录从学Laravel开始 实际工作中经常用到的一些小用法知识点 老是忘记 记录下方便自己以后查找 不定时更新
Laravel 中Model的 with
方法 预加载方法小记
如果你需要在关联的With中控制返回的数据字段 比如
|
|
而你只需要log中的title字段
如果你不做处理这时候你如果有调用log的时候他会加载全部的log数据库字段
你可以这样设置 就是查询他的主键+你需要的字段 注意主键一定要查询 不然他会返回你所真正需要的字段
在本地执行Laravel的队列
在本地执行Larave中的队列话 需要先执行一次 work
开启队列 然后使用listen
来监听就好了 就会自动执行了 但是他是一条一条执行的效率有点慢
|
|
Larave中Model让他自己维护created_at和updated_at时间问题
有时候我们会在数据库表中增加 created_at
和 updated_at
字段 自己去维护也可以 不过就烦就是
可是使用Laravel 让他自己去维护
1.数据库增加字段 created_at
和 updated_at
并设置类型 int
如果很大的话可以 bigint
【ps:我又看到需要设置成timesteamp 但测试并不可以不知道是Laravel版本问题还是啥别的设置影响了 待补充测试】
2.把这2个字段需要加入到Model中的 fillable
数组中
3.使用 create
方法会自动维护 insert
方法并不会自动维护但是和一次性插入多条记录 另外对象的实例的 save
方法也是可以自动维护的
4.如果你数据库设置的是int类型的 需要在Model中增加 protected $dateFormat = “U”; 或者重写 fromDateTime 方法
Laravel 软删除
有时候需要软删除数据 操作如下
数据库添加 deleted_at
字段 类型 int
即可
在对应的Model中 引入 use Illuminate\Database\Eloquent\SoftDeletes;
在类中使用 上面的类 use SoftDeletes;
类中增加软删除的数组标识protected $dates = ['deleted_at'];
后续在执行delete()
删除方法的时候就不会真的删除数据看 而是在数据库中 deleted_at
字段填上删除的时间
后面的查询会自动过滤掉软删除掉的记录
如果想在查询结果中包含软删除的记录
|
|
如果只想查询软删除的记录
|
|
软删除恢复
|
|
强制删除 forceDelete()
Laravel Model 中追加字段
比如我们有时候我们在数据库中存的是一个id值
需要在查询返回的时候把这个id对应的换成需要显示的一些文字的
这时候我们可以追加一些字段来返回他对应的信息
在Model中设置 appends
数组 里面是你要追加返回的字段
Laravel的分块查询
|
|
Laravel-Model 批量操作字段设置
Laravel 允许在Model中设置字段属性是否允许被批量赋值操作
$fillable
的数组中 这相当于一个白名单 这里的字段都允许批量操作$guarded
的数组中相当于一个黑名单 加入这里的字段都不可以被批量操作 同样不在他里面的字段都是可以批量操作的
这2个属性互斥 不能同时出现在Model中只能出现其中之一
|
|
Laravel 更新数据
有时候我们查询了一条数据 只有一条数据的时候
|
|
这个时候我们拿到了数据的对象 本例子中是 $payment
这个时候我们可以拿它直接进行更新的操作 不需要使用 Models
来 update
|
|
注意 如果想使用这个方式来更新数据的话 需要在获取对象的时候一定要查询包含 主键
不然更新不了的
Larave 为同一个Group下的路由指定不同的中间件
|
|
Laravel 中查询 结果返回 key->value的形式
有时我们只需要查询 2个 字段 一个当 Key 一个当Value的形式返回 可以使用下面
注意pluck是作用在collection下的 所以需要先获取到collection对象 可以使用get() first()方法等
|
|
Laravel 中判断查询的结果 Collection 是否为空的方法
我们在使用Laravel的关联模型查询的时候 Eloquent 查询 get() 等的时候其实是返回了一个 Illuminate\Database\Eloquent\Collection对象实例
可以使用下面的方法来判断是否为空 也就是没有结果
|
|
Laravel with查询取值问题
比如我们在使用with的时候 刚好方法名是有 小驼峰法
命名的 这个时候遍历中取值的问题
|
|