Eloquent を使用してユーザー権限を取得しようとしています
私は3つのテーブルを持っています、
1 つ目はusersテーブルです。
2番目は権限テーブルです
3番目はuser_permissionsです
構造はとてもシンプルです
users
-id
-name
permissions
-id
-name
user_permissions
-user_id
-permission_id
-read
-write
-update
-delete
これは、ユーザー権限を表示するコードです:
$user = App\User::find(1)->first();
foreach($user->permissions as $permission){
echo "Read".$permission->pivot->read."<br>";
echo "Write".$permission->pivot->write."<br>";
echo "Update".$permission->pivot->update."<br>";
echo "Delete".$permission->pivot->delete."<br>";
}
このように関係を定義すると(ユーザーモデルで)、すべて正常に機能します。
public function permissions()
{
return $this->belongsToMany('App\Permission','user_permissions')->withPivot('read', 'create','update','delete');
}
しかし、必要なフィールドを選択したくないので、別の方法で書きたいのですが、すべてを選択したいだけなので、次のように書くとエラーが発生します。
public function permissions()
{
return $this->belongsToMany('App\Permission','user_permissions')->using('App\UserPermission');
}
これは私のエラーです:
Builder.php 行 2440 の BadMethodCallException: 未定義のメソッド Illuminate\Database\Query\Builder::using() への呼び出し