首页 > 解决方案 > Laravel 中的 firstOrFail() 函数行为

问题描述

我有一家工厂,里面有这条线:

$channel = \App\Model\Channel::firstOrFail();

id是怎么设置的?我知道有一个类似的功能

$channel = \App\Model\Channel::firstOrFail($id);

但是与上面的有什么区别,你如何设置它?

标签: laravelmodel

解决方案


firstOrFail只是打电话->take(1)->get()->first()

如果返回 null,那么它会抛出 aModelNotFoundException并将模型设置为当前的查询构建器实例。

Channel,在您的情况下, extends Model,它使用Query Builder具有功能的引擎盖下firstOrFail

如果要设置,id那么它是:

$channel = \App\Model\Channel::findOrFail($id);

此外,没有必要完全限定您的命名空间,因此您可以自由地执行以下操作:

$channel = App\Model\Channel::findOrFail($id);

推荐阅读