Laravel 实用小技巧

  • Jesse
  • 2019-05-05 11:40:18
  • 161

1. 更新父表的  timestamps

如果需要在更新关联表的同时,更新父表的 timestamps,只需在关联表的 model 中添加 touches 属性
protected $touches = ['parentModel'];

2. 关联时使用 withDefault()

 使用模型关联时,如果关联的模型不存在,如:
 $post->user->name
 $post->user 会返回 null, 继续访问 name 会抛出致命异常,
 使用 withDefault 则会返回一个 User Model 的实例,访问 name 会变成 null
  withDefault 可以接受参数(数组、闭包)

3. 跳转到指定控制器并附带参数

return redirect()->action('SomeController@method', ['param' => $value]);

4. Eloquent 中的日期时间方法,更多方法详见 Illuminate/Database/Query/Builder.php

whereDay whereMonth whereYear whereDate whereTime

$posts = Post::whereDate('created_at', date('Y-m-d'))->get();
$posts = Post::whereMonth('created_at', date('m'))->get();
$posts = Post::whereDay('created_at', date('d'))->get();
$posts = Post::whereYear('created_at', date('Y'))->get();
$posts = Post::whereTime('created_at', '=', '13:14:10')->get();

本文出自 ShowCj,转载时请注明出处及相应链接。