use*_*273 1 php mysql laravel laravel-5
Edit:
I dont think its the same issue as:
/sf/ask/2801605061/
because in that issue hasMany relationship is used which returns an array but i used belongsTo which should return a certain object.
Run Code Online (Sandbox Code Playgroud)
我有一个数据库结构,其中用户和公司表之间存在多对多关系。为此,我有一个交叉引用表 company_user。此外,每个用户在公司中都有特定的角色,因此交叉引用表也有一个 role_id。问题是,由于某种原因,当我尝试从交叉引用表中检索角色时出现异常。
这是我在公司模型中定义关系的方式:
public function users() {
return $this->belongsToMany('App\User')->withPivot('role_id')->using('App\CompanyUser');
}
Run Code Online (Sandbox Code Playgroud)
现在,如果我只是尝试从 pivot 获取 role_id 一切正常:
@foreach($company->users as $user)
{{$user->pivot->role_id}} // this displays correct role_id
@endforeach
Run Code Online (Sandbox Code Playgroud)
但我也需要角色的数据,所以我在我的自定义数据透视中定义了一个关系。这是整个模型:
<?php
namespace App;
use Illuminate\Database\Eloquent\Relations\Pivot;
class CompanyUser extends Pivot
{
public function role()
{
return $this->belongsTo('App\Role');
}
}
Run Code Online (Sandbox Code Playgroud)
我试图像这样访问它:
@foreach($company->users as $user)
{{$user->pivot->role()->id}}
@endforeach
Run Code Online (Sandbox Code Playgroud)
但这给了我一个例外:
Undefined property: Illuminate\Database\Eloquent\Relations\BelongsTo::$id
Run Code Online (Sandbox Code Playgroud)
我错过了什么?
小智 5
尝试更改为
@foreach($company->users as $user)
{{$user->pivot->role->id}}
@endforeach
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2050 次 |
| 最近记录: |