![](/img/trans.png)
[英]Laravel Error leftJoin : Undefined property: Illuminate\Database\Eloquent\Collection::$id
[英]Laravel relationship error: Undefined property: Illuminate\Database\Eloquent\Collection::$id on line 1
我有兩個模型Company
和Employee
,以及MySQL, companies
和employees
相應表。
我定義了這些多對一關系:
在Company
模型中:
public function employees(){
return $this->hasMany('App\Employee','company');
}
在Employee
模型中:
public function company(){
return $this->belongsTo('App\Company','company');
}
company
上面的方法是employees
表中存在的無符號整數外鍵。
在修補匠中,我嘗試過$company->employees;
,返回所選公司中所有員工的列表。 但是,當我執行$company->employees->id
來獲取所有員工的ID而不是其他行時,它會給我錯誤:
PHP error: Undefined property: Illuminate\Database\Eloquent\Collection::$id on line 1
那么$company->employees
返回一個集合, ->id
不是集合中的屬性,這就是你得到錯誤的原因。
如果要檢索包含員工所有ID的數組,可以執行以下操作:
$company->employees()->lists('id');
如果您正在閱讀本文並使用laravel ^5.3.*
那么答案將是:
$company->employees()->pluck('id');
這將返回一個包含所有id的集合,如果你想讓它成為一個數組,你可以將->toArray()
在它后面。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.