giò*_*giò 1 php sql orm laravel
当我使用查询生成器时,我总是发现自己在做这样的事情:
$item = \DB::table('table')->where('slug',$slug)->first();
if ($item===null)
throw \Exception('Not found');
Run Code Online (Sandbox Code Playgroud)
如果有像 Eloquent 这样的firstOrFail(),这个问题就很容易解决:
$item = \DB::table('table')->where('slug',$slug)->firstOrFail();
Run Code Online (Sandbox Code Playgroud)
Eloquent 是唯一的使用方法firstOrFail()吗?查询生成器是否允许这样的事情?
您可以通过宏将其自己添加到查询生成器中:
DB::query()->macro('firstOrFail', function () {
if ($record = $this->first()) {
return $record;
}
throw new Exception('No records found');
});
Run Code Online (Sandbox Code Playgroud)
然后你可以像使用 Eloquent 一样使用它:
$item = DB::table('table')->where('slug', $slug)->firstOrFail();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9910 次 |
| 最近记录: |