0

请有人帮我过滤一下。我有 3 个表:投诉、frontend_tag、frontendtags_complaints 我注意按 frontend_tag 过滤投诉

这是我的过滤器代码:

$this->crud->addFilter([
            'name' => 'frontendtags',
            'type' => 'select2',
            'label'=> 'FE Tag'
        ], function() {
            return \App\Models\FrontendTags::all()->pluck('name', 'id')->toArray();
        }, function($value) {
            return $this->crud->query->whereHas('frontendtags', function ($q) use ($value) {
                $q->where('tag_id', $value);
            });
        });

这是我的关系代码:

 public function frontendtags()
    {
        return $this->belongsToMany('App\Models\FrontendTags', 'frontendtags_complaints', 'complaint_id', 'tag_id');
    }

过滤器不工作。

4

1 回答 1

2

代替

$q->where('tag_id', $value);

$q->where('frontend_tag.id', $value);

where 条件应用于相关表,在本例中为 frontend_tag。

于 2017-04-03T13:38:34.140 回答