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

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

《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 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年前 评论

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