2016-04-30 115 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