我正在尝试通过一个数组来过滤雄辩的模型。我想要整个模型,其中特定的列在其中包含某个元素(在数组中)。
我已经尝试过使用:-
$admins = User::where('role', ['admin'])->paginate(15);
答案 0 :(得分:1)
根据您的评论,您正在尝试为用户提供角色/权限系统。
我建议您使用spatie/laravel-permissions或JosephSilber/bouncer之类的外部软件包,该软件包与laravel集成良好。
但是,Laravel(或者我最好说MySQL / PostgreSQL)支持json字段类型,这可能会实现类似您所寻找的东西。我不确定的部分是在数组中寻找一个值。
您可以在文档here中看到所有可用的JSON字段。
无论如何,如果您想在没有有限的JSON支持的情况下自己实现该功能,我将重组数据库以包含以下表:
用户(您拥有的所有字段,但角色和权限除外)
user_role (id,user_id,role_id)
角色(ID,名称,显示名称)
user_permission (用户ID,用户ID,权限ID)
权限(ID,名称,显示名称)
使用该数据库,您只需为用户,角色和权限模型设置正确的关系。
最后一种方法是这些程序包在内部或多或少地处理其内容(角色/权限)的方式,这绝对是一种更好的处理用户表中JSON列的方法。