ユーザー、役割、および権限モデルがあります。ユーザーは役割と役割のみを持ち、役割は権限のみを持つため、ユーザーと権限との間には接続がありません。Laravel Eloquent:2番目のモデルでのみ接続する最初のモデルを使用して3番目のモデルを取得する方法
役割モデル
public function users(){
return $this->belongsToMany('App\User', 'role_user', 'user_id', 'role_id');
}
public function permissions(){
return $this->belongsToMany('App\Permission', 'permission_role', 'permission_id', 'role_id');
}
Userモデル
public function roles(){
return $this->belongsToMany('App\Role', 'role_user', 'user_id', 'role_id');
}
パーミッションモデル
public function roles(){
return $this->belongsToMany('App\Role', 'permission_role', 'permission_id', 'role_id');
}
だから私はすることができますよ私は
$users->roles
をすれば今どのように私は1つしかない場合許可
$users->role()->permission
[ 'hasManyThrough'](https://laravel.com/docs/5.5/eloquent-relationships#has-many-through)がどのように見えますあなたが必要とするものを正確に – apokryfos
@apokryfos可能性は逆もまたこれを使って作るのですか?ユーザーの代わりに許可するユーザーの許可 –
ドキュメントの例では、国はユーザーからの投稿が多く、投稿はユーザーからも多くの国に所属しています。私は両方向が 'hasManyThrough'と同じようにうまく動作すると期待しています。 – apokryfos