在 yii2 的 gridview pjax 搜索中使用 POST 方法

using POST method in gridview pjax search in yii2

我在 yii2 高级应用程序中有一个 gridview,我想使用 post 方法来搜索该网格的数据,这不是问题,我可以使用下面的代码

<?php Pjax::begin(['id' => 'grid', 'timeout' => false ,'clientOptions' => ['method' => 'POST'] ]); ?>

<?php Pjax::end(); ?>

但现在的问题是我应该如何使用 post 在 table 的 Search 模型中发送数据。

现在我所做的是检查 $_POST 并将其分配给代码中的 $params 但我想知道有没有比下面的代码更好的方法

public function search($params)
{
    if(isset ($_POST)){
        $params = $_POST;
    }

    $query = Event::find()-> where(['organiser_id'=>Yii::$app->user->identity->id]);

    $this->load($params);

    $query->joinWith(['interest']);

    if (!$this->validate()) {

        return $dataProvider;
    }

    $query->andFilterWhere([
        'id' => $this->id,
        'organiser_id' => $this->organiser_id,
        'is_active' => $this->is_active,
    ]);

    $query->andFilterWhere(['like', 'title', $this->title])

    return $dataProvider;
}

非常感谢

public function search($params)
{
    if(isset ($_POST['SearchModel'])){
        $this->load = \Yii::$app->request->post();
    }

   //searching code here
}

在实施搜索的索引操作中使用 As:

public function actionIndex()
    {
        $searchModel = new SearchModel(); //Your Search Model Class
        $post = Yii::$app->request->post();
        $dataProvider = $searchModel->search($post);

        return $this->render('index', [
            'searchModel' => $searchModel,
            'dataProvider' => $dataProvider,
        ]);
    }

在搜索模型中 Class::

public function search($params)
    {


        $dataProvider = new ActiveDataProvider([
            'query' => $query,
        ]);

        $this->load($params);
}