我想我正努力在我的場景中正確地獲得關係。laravel 5 - 雄辯的關係(權限表)
我有三個表
Table: users
| id | username |
----------------------
| 1 | pluto |
|------|-------------|
Table: permissions
| id | user_id | level_id | app_id |
--------------------------------------------------
| 1 | 1 | 2 | 9 |
|------|-------------|--------------|------------|
Table: levels
| id | level |
----------------------
| 1 | admin |
|------|-------------|
| 2 | manager |
|------|-------------|
| 3 | editor |
|------|-------------|
我希望得到的結果是
manager //through User:: model or Auth::
我想無論是通過用戶模型得到的水平表水平列中的值。這是我在我的課上的最後一個版本...
class User extends Authenticatable
{
public function permissions()
{
return $this->hasOne('App\Permissions');
}
}
class Permissions extends Model
{
public function user()
{
return $this->hasMany('App\User');
}
public function levels()
{
return $this->hasMany('App\Levels');
}
}
class Levels extends Model
{
public function permissions()
{
return $this->belongsTo('Modules\Ecosystem\Entities\permissions');
}
}
在控制器中使用此功能我能夠從權限表中檢索值。但是我無法從水平表中的值...
$user = User::with('permissions')->find(Auth::user()->id);
但是我不能當我嘗試這從各級表中獲取值...
$user = User::with('permissions.levels')->find(Auth::user()->id);
產生一個錯誤:
Column not found: 1054 Unknown column 'levels.permissions_id' in 'where clause' (SQL: select * from `levels` where `levels`.`permissions_id` in (1))
據我所知,我並不完全理解在這種情況下關係是如何工作的,但我不想僅僅猜測解決方案。我想了解它。
事情是,級別表只用作權限級別(角色)的列表。我承認我可以用其他方式定義權限級別,但目前這是一切設置的方式。
我想您所定義權限級別關係完全相反f它應該是什麼。 「權限」屬於「級別」和「級別」具有許多「權限」。 –