嗨!我是php的新手,laravel您可以通过替换此查询生成器来说明如何使用laravel Elouquet创建isAuthorized()
方法吗
class User extends Authenticatable
{
public function isAuthorized($object, $operation)
{
return Db::table('role_permissions')
->where('object', $object)
->where('operation', $operation)
->join('user_roles', 'user_roles.role_id', '=', 'role_permissions.role_id')
->where('user_roles.user_id', $this->id)
->exists();
}
}
答案 0 :(得分:0)
像这样创建模型。
public class RolePermission {
public function UserRoles() {
return $this->hasMany(UserRole::class, 'role_id', 'role_id');
}
}
public class UserRole {
}
WhereHas
可以查询关系,并且是替换联接的基石。
RolePermission::where('object', $object)
->where('operation', $operation)
->whereHas('UserRoles', function ($query) {
$query->where('user_roles.user_id', $this->id)
})
->exists();