我正嘗試與2個模型User
和Role
創建一對多關係。所以,我希望那一個User
只能有一個角色,並且Role
可以被分配到多於User
。我試圖按照官方教程https://laravel.com/docs/5.1/eloquent-relationships#one-to-many,並結束了與此:一對多關係不起作用
class User extends Model
{
public function role()
{
return $this->belongsToMany('App\Admin\Role');
}
}
class Role extends Model
{
protected $table = 'roles';
public function users()
{
return $this->hasMany('App\Admin\User');
}
}
基於該鏈接的,我覺得Role
是同樣的事情Post
,一個Role
可以分配給許多User
。然而,這完全不是那麼回事,這裏就是我想對特定User
$role_first = $user->role; // Eloquent\Collection
$role_second = $user->role(); // Eloquent\Relations\BelongsToMany
$role_first->role_title // 'Undefined property: Illuminate\Database\Eloquent\Collection::$role_title'
$role_second->role_title // exception 'ErrorException' with message 'Undefined property: Illuminate\Database\Eloquent\Relations\BelongsToMany::$role_title'
訪問角色名稱究竟是什麼錯在這裏?
您在此處創建了一對一關係(hasOne和belongsTo),這是不正確的。許多用戶可以具有相同的角色,這是一對多的關係。 –