2016-04-30 144 views
0

我需要laravel 5(用雄辩)Laravel关系

帮助(其中加入)我有2个表

模型驱动 司机

  • ID
  • 公司

型号DriverOnline drivers_online

  • ID
  • driver_id

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

回答

2

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

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

如果该条款上的关系,使用with并指定一个查询。

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

请参阅 “贪婪加载约束”:
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(); 
+0

''' $驱动=驱动::与([ 'driversOnline'=>功能($查询) { $查询 - >其中( '在线', '=',1); }]) - >其中( 'COMPANY_ID', '=',1) - >得到(); ''' – gibAlex

+0

但让我所有的驱动程序 – gibAlex

+0

如果你只想选择在线驱动程序,你应该反转它。 'DriverOnline :: with('driver') - > where('online',true) - > get();' – Josh