Laravel 两个select2\u ajax过滤器之间的关系

Laravel 两个select2\u ajax过滤器之间的关系,laravel,backpack-for-laravel,Laravel,Backpack For Laravel,我有一个项目,其中有一个程序、类别和子类别表, 从外键到类别的子类别 过程具有指向“类别”和“子类别”的外键 在我的controller/setupListOperation中,我添加了两个我想关联的过滤器,请查看该类别的子类别选择为过滤器 但是我不知道如何在两个select2\u ajax之间建立链接 // Filtre sur la catégorie CRUD::addFilter([ 'name' => 'filtre_categori

我有一个项目,其中有一个程序、类别和子类别表, 从外键到类别的子类别 过程具有指向“类别”和“子类别”的外键

在我的controller/setupListOperation中,我添加了两个我想关联的过滤器,请查看该类别的子类别选择为过滤器

但是我不知道如何在两个select2\u ajax之间建立链接

    // Filtre sur la catégorie
    CRUD::addFilter([
        'name'        => 'filtre_categorie',
        'type'        => 'select2',
        'label'       => 'Filtre de catégorie',
        'placeholder' => 'Sélectionner une catégorie',
        'minimum_input_length' => 0,
    ],
    function () { return  \App\Models\Categorie::all()->keyBy('id')->pluck('name', 'id')->toArray();
    }, function ($value) { // if the filter is active
         $this->crud->addClause('where', 'categorie_id', $value);
    });


    // Filtre sur la sous catégorie
    CRUD::addFilter([
        'name'        => 'filtre_souscategorie',
        'type'        => 'select2_ajax',
        'label'       => 'Filtre de sous-catégorie',
        'placeholder' => 'Sélectionner une sous-catégorie',
        'minimum_input_length' => 0,
    ],
    url('admin/procedure/ajax-souscategory-options'), // the ajax route
    function($value) { // if the filter is active
        $this->crud->addClause('where', 'souscategorie_id', $value);
    });

我通过这样做找到了解决方案:

我的领域:

// Filtre sur nom
        CRUD::addFilter([
            'type'  => 'text',
            'name'  => 'nom_filter',
            'label' => 'Recherhe par nom de procédure'
        ],
        false,
        function($value) { // if the filter is active
            $this->crud->addClause('where', 'name', 'LIKE', "%$value%");
        });

        // Filtre sur la catégorie
        CRUD::addFilter([
            'name'        => 'filtre_categorie',
            'type'        => 'select2',
            'label'       => 'Filtre de catégorie',
            'placeholder' => 'Sélectionner une catégorie',
            'minimum_input_length' => 0,
        ],
        function () { return  \App\Models\Categorie::all()->keyBy('id')->pluck('name', 'id')->toArray();
        }, function ($value) { // if the filter is active
             $this->crud->addClause('where', 'categorie_id', $value);
        });
我的班级:

public function souscategoryFilterOptions(Request $request) {
        $term = $request->input('term');
        $options = \App\Models\Souscategorie::query();
        $str = $_SERVER['HTTP_REFERER'];
        $qs = parse_url($str, PHP_URL_QUERY);

        if(!empty($qs)){
            parse_str($qs, $output);
            $resultsFilter = $options->where('categorie_id', $output['filtre_categorie'])->get()->pluck('name', 'id');
        }

        if ($term) {
            $resultsFilter = $options->where('name', 'LIKE', '%'.$term.'%')->paginate(10);
        } else {
            $resultsFilter = $options->paginate(10);
        }

        return $resultsFilter;
    }