summerblue/administrator 查询时添加额外条件

最近在使用 summerblue 团队改良开发的 administrator 快速构建网站后台,遇到一个难以解决的需求: 网站允许部分具有权限的客户登录后台管理属于他的客户和商品。
这意味着在检出属于该客户的商品时我需要附加一个条件:where user_id = Auth::user()->id
但我只会给有权限的用户检索出全部消息,查阅资料也没能找到相关限制条件。故来此求助。
若无法实现,可否将这一部分“拥有权限的客户”和“管理员”分流,让管理员登录到 administrator 构建的后台,再给客户手撸出来另一个后台?

《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
Summer
最佳答案
4年前 评论
罐装仙人掌CuratorC (楼主) 4年前
讨论数量: 2
Summer
4年前 评论
罐装仙人掌CuratorC (楼主) 4年前

问题完美解决。感谢站长@Summer 的解答。这就像是写了一个 scope 一样,对 $query 对象进行操作。实现代码如下

'query_filter' => function($query)
    {
        if (Auth::user()->user_identity->identity_type == 2) // 若为用户类型账户
        {
            $query->where('store_id', Auth::user()->store->id); // 添加 where 条件
        }
    },

还以为自己得手撸一个后台出来,愁了一个周末哈哈哈。

与此同时我做了一个后续思考。当用户在本页面添加商品信息的时候,我需要给该条商品追加一条 store_id 字段,显然这个字段是不能允许客户自己去填写的。我打算在 Observer 中的 creating 实现这个操作。那么 administrator 能否直接实现这个功能呢?

4年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!