我正在尝试使用 Eloquent 获取用户权限
我有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()