2016-10-13 31 views
2

我的模型是 員工,其中有關係:Laravel - 動態綁定不是在一個一對多的關係,工作

public function company(){ 
     return $this->belongsTo('App\Company','company'); 
    } 

和公司,該公司的關係:

public function employees(){ 
     return $this->hasMany('App\Employee','company'); 
    } 

company是我的employees表中的FK,指向我的companies表中的id。 在鼓搗我運行以下命令:

$employee = App\Employee::firstOrFail(); 
$employee->company; //returns 1 

但是當我做

$employee->company->name; 

OR

$employee->company->id; 

它會返回錯誤:

PHP error: Trying to get property of non-object on line 1 
+1

我認爲它是因爲你有一個名爲'company'的列,並且你的關係具有完全相同的名稱,該列是'$ employee'的屬性,這就是爲什麼它返回1而不是對象。 – Neat

+1

如果你是'dd($ employee-> company)',它返回一個數組還是'1'? –

+0

我認爲它是'App \ Employee :: firstOrFail()'。這是一個錯字嗎? –

回答

1

感謝@Neat ,原因是這樣的這些字段的名稱與關係方法相同。 我將字段company更名爲company_id,現在它工作正常。