【发布时间】:2018-09-08 20:41:23
【问题描述】:
我有一个 Person 模型。每个人可能拥有零辆或多辆汽车:
class Person extends Model
{
public function cars()
{
return $this->hasMany('App\Car');
}
}
我希望选择并显示所有拥有福特汽车的人并进行一次查询。所以我尝试了这个:
$persons = Person::whereHas('cars', function ($query) {
$query->where('mark', 'ford');
})->get();
foreach ($persons as $person) {
foreach($person->cars()->get() as $car) {
print $person->name . " has a " . $car->mark . $car->model
}
}
$persons 是通过一个查询获得的,但在 foreach 循环中 $person->cars()->get() 会为每个人创建一个新查询。如何避免这种情况并通过第一次查询获得所需的汽车数据?
【问题讨论】:
标签: laravel laravel-5 eloquent laravel-5.4 laravel-eloquent