簡體   English   中英

Laravel關系錯誤:未定義屬性:第1行上的Illuminate \\ Database \\ Eloquent \\ Collection :: $ id

[英]Laravel relationship error: Undefined property: Illuminate\Database\Eloquent\Collection::$id on line 1

我有兩個模型CompanyEmployee ,以及MySQL, companiesemployees相應表。

我定義了這些多對一關系:

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM