多对多无法支持闭包函数,tp5.0修复了的,麻烦改进一下

关注者
0
被浏览
375
9 个回答
F4NNIU
F4NNIU 认证专家 2018-09-10
我知道的一定回复,如果觉得我的回答还不错,欢迎给我点赞。

使用 composer update 可以升级后端组件的哦。

楽猪
楽猪 2019-01-18
这家伙很懒,什么也没写!

请教一下 这个 我试了 好像还是不行呢?

楽猪
楽猪 2019-01-18
这家伙很懒,什么也没写!

好像还是不行 我现在是5.0.22

F4NNIU
F4NNIU 认证专家 2019-01-18
我知道的一定回复,如果觉得我的回答还不错,欢迎给我点赞。

现在已经 5.0.24

楽猪
楽猪 2019-01-23
这家伙很懒,什么也没写!

您好,升级到5.0.24后,这个多对多的关联好像也没生效,还是我写法不对呢。请指教一下

我的代码大致

        $model = new Brand();
        $model->with(['categories' => function($query) {
            // $query->where('id', $this->request->get('category_id'));

            $query->where('id', 3);
        }]);
        
        $rows = $model->page($page, $limit)->select();
        return $rows;

品牌表(fa_brand)模型和分类表(fa_category)是多对多的关系。一个品牌可以拥有多个分类,一个分类也可以分配给多个品牌。

我已经在brand模型里面建立好了多对多的关联categories

需求是前端如果传递了category_id那么我就得查询这个分类下的所有品牌,如果不传我就查所有分类的。

然后我是想在闭包里添加一个条件,但是结果得到的依然是全部的品牌数据。

放码过来
放码过来 2019-01-23
这家伙很懒,什么也没写!

闭包里面貌似不能写$this->request->get()来获取变量吧

楽猪
楽猪 2019-01-23
这家伙很懒,什么也没写!

嗯嗯 是的 。 我手动写死了也不行。

就感觉这个闭包里的代码没有生效。 我在里面var_dump();exit; Log::error('日志内容')都没有效果。

请教下,比如这种多对多的查询你们都是怎么写的?

放码过来
放码过来 2019-01-23
这家伙很懒,什么也没写!

你可以百度一下php 闭包函数如何引用外部变量

楽猪
楽猪 2019-01-23
这家伙很懒,什么也没写!

我知道使用use可以引用外部变量。

你看我上面代码,我已经在闭包里写死了这个变量了。 但是查询的结果并没有应用到这个条件。
也就是说 我想查属于3这个分类下的品牌。 可是现在结果返回的依然是所有的品牌

撰写答案

请登录后再发布答案,点击登录

发布
问题

分享
好友

手机
浏览

扫码手机浏览