【问题标题】:using POST method in gridview pjax search in yii2在yii2的gridview pjax搜索中使用POST方法
【发布时间】:2015-10-19 05:25:08
【问题描述】:

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

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

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

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

现在我所做的是检查 $_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;
}

非常感谢

【问题讨论】:

  • 你让它工作了吗?我的也拿不到。可以分享你的解决方案吗?

标签: gridview yii2 yii2-advanced-app yii2-basic-app


【解决方案1】:
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,
        ]);
    }

在搜索模型类中::

public function search($params)
    {


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

        $this->load($params);
}

【讨论】:

  • 我不知道这将如何工作,但我会尝试回复您,因为即使添加了您的代码 $params 值仍然是空的,对吧....
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-02-11
  • 1970-01-01
  • 2018-08-10
相关资源
最近更新 更多