一位stack overflow用户回答了我两种返回每个人家具的方法,这种方法是“一对多”的关系。这招很管用。
我的问题是知道这两种方式的区别。每种方式的优点和缺点。
重要提示:Laravel版本:5.8
第一种解决方案:
public function showPersonFurnitures($id) {
$person = Person::with('furnitures')->findOrFail($id);
$furnituresOfEachPerson = $person->furnitures; //<-----
return response()->json($furnituresOfEachPerson);
}
第二种解决方案:
public function showPersonFurnitures($id) {
$person = Person::with('furnitures')->findOrFail($id);
$furnituresOfEachPerson = $person->furnitures()->get(); //<----
return response()->json($furnituresOfEachPerson);
}
总的来说,这两种方法的差别并不大,您将得到相同的结果,不同的是:$Person->Furnitures
使用关系,这与它基于一对多关系检索数据的eager loading非常相似。$Person->Furnitures()->Get()
是从集合的角度实现的,这就是它具有查询集合语法的原因。