2017-04-19 53 views
0

這是我位置表:Laravel關係,一個數據庫有兩個外鍵

ID 
Name 
Type 

這是路線表:

ID 
Location_start(int) 
Location_distination(int) 
Distance 
Rate 

我嘗試實現它們之間的關係兩個表,所以我可以在foreach循環中獲取location_startlocation_distination的位置名稱。我試過它:

public function locationStart() 
{ 
$this->belongsTo('App\Route', 'location_start'); 
} 
public function locationDistination() 
{ 
$this->belongsTo('App\Route', 'location_distination'); 
} 

但它沒有這樣工作。

+0

請一)告訴我們列的,如果有的話,是外鍵和什麼他們引用b)你把這個(你發佈的關係)放在哪個模型中。 – devk

+0

嘗試使用'hasOne'而不是'belongsTo'。 –

+0

@devk Location_start和Location_distination。在位置模型 –

回答

0

您的路線類應該是這樣的:

class Route extends Model 
{ 
    public function locationStart() 
    { 
     $this->belongsTo(Location::class, 'location_start'); 
    } 

    public function locationDestination() 
    { 
     $this->belongsTo(Location::class, 'location_distination'); 
    } 
} 

那麼你應該能夠做到:

$route = Route::with('locationStart', 'locationDestination')->find(20); 
$route->locationStart->Name; 
$route->locationEnd->Name; 
+0

非常感謝你:)! –

相關問題