在Laravel中,这两个函数调用有什么区别?
$this->load(['episodes.item.cast' => function ($q) use (&$cast) {
$cast = $q->get()->groupBy("id");
}]);
和
$cast = $this->load('episodes.item.cast')->get()->groupBy("id");
他们产生了不同的结果,但我不明白为什么。
答案 0 :(得分:1)
我假设$this
已经是现有对象(因为你在其上使用load
)。现有的我的意思是$this->exists => true
。
那就是重点。第一个查询是好的,但真的很奇怪。但其次是不行。在现有对象上使用->get()
时,您可以创建新的空查询并获取所有值。
所以基本上,如果您已经查询了对象$obj = YourModel::find(1)
,然后执行了$obj->get()
,您将获得与YourModel::all()
相同的结果。