0

誰か、フィルターを手伝ってください。私は 3 つのテーブルを持っています: 苦情、frontend_tag、frontendtags_complaints

ここに私のフィルターコードがあります:

$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 に答える