在 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);
}
我在 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);
}