Laravel中firstOrFail()函数的行为

Laravel中firstOrFail()函数的行为,laravel,model,Laravel,Model,我有一家工厂,里面有这条生产线: $channel = \App\Model\Channel::firstOrFail(); 如何设置id? 我知道有一个函数 $channel = \App\Model\Channel::firstOrFail($id); 但是与上面的有什么区别?如何设置它?first或fail只需调用->take(1)->get()->first() 如果返回null,则抛出一个ModelNotFoundException,并将模型设置为当前查询生成器实例 频道,在您的情

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

$channel = \App\Model\Channel::firstOrFail();
如何设置id? 我知道有一个函数

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

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

first或fail
只需调用
->take(1)->get()->first()

如果返回null,则抛出一个
ModelNotFoundException
,并将模型设置为当前查询生成器实例

频道
,在您的情况下,扩展了
模型
,它使用引擎盖下的
查询生成器
,具有
first或fail
功能

如果要设置
id
,则它是:

$channel = \App\Model\Channel::findOrFail($id);
此外,没有必要完全限定您的命名空间,因此您可以自由地执行以下操作:

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

firstOrFail
只需调用
->take(1)->get()->first()

如果返回null,则抛出一个
ModelNotFoundException
,并将模型设置为当前查询生成器实例

频道
,在您的情况下,扩展了
模型
,它使用引擎盖下的
查询生成器
,具有
first或fail
功能

如果要设置
id
,则它是:

$channel = \App\Model\Channel::findOrFail($id);
此外,没有必要完全限定您的命名空间,因此您可以自由地执行以下操作:

$channel = App\Model\Channel::findOrFail($id);
将只返回模型中的第一个通道,通常是ID号最低的通道。这可用于检查数据库中是否存在任何频道,例如,您想知道是否存在可供用户选择的频道

$id = ['id'];
$channel = \App\Model\Channel::firstOrFail($id);
相同,但只返回数据库中第一个模型的
id

如果要返回具有特定ID的元素,应使用

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

将只返回模型中的第一个通道,通常是ID号最低的通道。这可用于检查数据库中是否存在任何频道,例如,您想知道是否存在可供用户选择的频道

$id = ['id'];
$channel = \App\Model\Channel::firstOrFail($id);
相同,但只返回数据库中第一个模型的
id

如果要返回具有特定ID的元素,应使用

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


谢谢-现在有意义了。所以它只是检查一个记录是否存在。没有$id是没有意义的,但现在有了。谢谢,谢谢-现在说得通了。所以它只是检查一个记录是否存在。没有$id是没有意义的,但现在有了。谢谢,谢谢。我不知道这是->take(1)->get()->first()的简写谢谢。我不知道这是->take(1)->get()->first()的缩写