Laravel RelationShip(加入哪里)

时间:2016-04-30 14:38:08

标签: php laravel laravel-5

我需要帮助laravel 5(使用Eloquent)

我有2张桌子

模型驱动程序 驱动程序

  • ID
  • 公司

模型DriverOnline drivers_online

  • ID
  • 名称
  • driver_id

我需要seatch结果(commany = 1和driver_id = driver.id)帮助我!

1 个答案:

答案 0 :(得分:2)

如果您只想根据条件提取Driver,您可以这样做:

Driver::with('online')->where('company', 1)->get();

如果该条款与该关系有关,请使用with并在其上指定查询。

$company = 1;
$drivers = Driver::with(['online' => function($query) use ($company)
{
    $query->where('company', $company);
}]);

参见“Eager Load Constraints”:
https://laravel.com/docs/5.0/eloquent

记下我的use。这允许您将范围中的变量包含到Closure实例中。

请注意,如果您使用任何一种解决方案,则必须建立关系。请参阅我分享的链接,了解更多相关信息。

编辑:根据我们的对话。

$drivers = Driver::where('company_id','=',1)
    ->with('driversOnline')
    ->whereHas('driversOnline', function($query) {
        $query->where('online','=',1);
    })
    ->get();