Edit:
I dont think its the same issue as:
https://stackoverflow.com/questions/40022929/laravel-relationship-error-undefined-property-illuminate-database-eloquent-col
because in that issue hasMany relationship is used which returns an array but i used belongsTo which should return a certain object.
私は、ユーザーと企業のテーブルの関係が多岐にわたるデータベース構造を持っています。そのために、私は相互参照テーブルcompany_userを持っています。また、各ユーザは会社内で特定のロールを持ち、相互参照テーブルにもrole_idがあります。問題は、何らかの理由で、相互参照テーブルからロールを取得しようとすると例外が発生することです。私はちょうどピボットすべてからROLE_IDを取得しようとする場合は正常に動作今カスタムピボットモデルのLaravel-belongsTo関係が動作しない
public function users() {
return $this->belongsToMany('App\User')->withPivot('role_id')->using('App\CompanyUser');
}
:
は@foreach($company->users as $user)
{{$user->pivot->role_id}} // this displays correct role_id
@endforeach
しかし、私はまたのデータを必要とする。ここ
は、私は、当社モデルの関係を定義した方法です役割は私のカスタムピボットの関係を定義しました。ここでは、全体のモデルである:
<?php
namespace App;
use Illuminate\Database\Eloquent\Relations\Pivot;
class CompanyUser extends Pivot
{
public function role()
{
return $this->belongsTo('App\Role');
}
}
、私はこのようにそれにアクセスしようとしました:
@foreach($company->users as $user)
{{$user->pivot->role()->id}}
@endforeach
しかし、これは私に例外与える:
Undefined property: Illuminate\Database\Eloquent\Relations\BelongsTo::$id
は、私が何をしないのですか?
可能な複製に変更してみてください[Laravel関係のエラー:未定義のプロパティを:雄弁\コレクション\ \データベースを照らす:: $ IDを1行目](https://stackoverflow.com/questions/ 40022929/laravel-relationship-error-undefined-property-illuminate-database-eloquent-col) –