如何在雄辩的ORM中使用此方法?

问题描述 投票:0回答:1

Hlw!我是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();
    }
}
php laravel eloquent
1个回答
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();
© www.soinside.com 2019 - 2024. All rights reserved.