我有一个带有这条线的工厂:
$channel = \App\Model\Channel::firstOrFail();
如何设置ID? 我知道有一个像
这样的功能$channel = \App\Model\Channel::firstOrFail($id);
但是上面的那个有什么区别,你如何设置呢?
答案 0 :(得分:3)
firstOrFail
只需致电->take(1)->get()->first()
如果返回null,则抛出ModelNotFoundException
并将模型设置为当前查询构建器实例。
Channel
扩展Model
,它使用了Query Builder
,它具有firstOrFail
功能。
如果你想设置id
,那就是:
$channel = \App\Model\Channel::findOrFail($id);
此外,没有必要完全限定您的命名空间,因此您可以自由地执行:
$channel = App\Model\Channel::findOrFail($id);
答案 1 :(得分:1)
$channel = \App\Model\Channel::firstOrFail();
只返回模型中的第一个Channel,通常是ID号最小的Channel。这可以用于检查数据库中是否存在任何频道,例如你想知道用户可以选择一个可能的频道。
$id = ['id'];
$channel = \App\Model\Channel::firstOrFail($id);
是相同的,但只会返回数据库中第一个模型的id
。
如果要返回具有特定ID的元素,则应使用
$channel = \App\Model\Channel::find($id)->firstOrFail();
或
$channel = \App\Model\Channel::findOrFail($id);