使用我当前的数据,如果我在控制器中创建一个查询:
$users = User::with('skills')
->with('skills')
->with('positions')
->orWhereHas('positions', function($thisquery) use ($positions)
{
$thisquery->whereIn('name', $positions);
})
->get();
返回正确的结果。
但是如果我创建这样的查询:
$users = User::with('skills');
$users->with('skills');
$users->with('positions');
$users->orWhereHas('positions', function($thisquery) use ($positions)
{
$thisquery->whereIn('name', $positions);
})
$users->get();
没有返回任何数据。
我原本以为两者会是一样的,但显然我错过了一些要点 - 结果不同的原因是什么?
答案 0 :(得分:1)
您应该尝试像这样分配get()
方法结果:
$users = $users->get();
链式方法通常通过返回对象来工作。您的get()
方法返回一个集合。因此,您应该将其分配给某个变量,以便以后以某种方式使用它。
你也可以考虑重命名$users
变量,尽管我也会这样做。