Php Yii2中的主要搜索表单
我是Yii2的新手,我仍然不知道如何正确配置它。我注意到,Php Yii2中的主要搜索表单,php,gridview,yii2,Php,Gridview,Yii2,我是Yii2的新手,我仍然不知道如何正确配置它。我注意到,GridView在每列上都有搜索字段。我现在需要的是创建一个主/单个搜索字段,用户可以在其中输入关键字,然后点击搜索按钮后,结果将显示在GridView中 这可能吗?我还在我的搜索表单字段中使用了这个Kartik小部件,它有一个下拉列表 我们被告知使用此下拉搜索,当用户输入一些关键字(有时会在下拉列表中返回“未找到结果”)并单击搜索按钮时,页面将刷新,根据输入的关键字显示所有结果 我还在SO中搜索了一些与我相同的问题,例如: 我没有找
GridView
在每列上都有搜索字段。我现在需要的是创建一个主/单个搜索字段,用户可以在其中输入关键字,然后点击搜索按钮后,结果将显示在GridView
中
这可能吗?我还在我的搜索表单字段中使用了这个Kartik小部件,它有一个下拉列表
我们被告知使用此下拉搜索,当用户输入一些关键字(有时会在下拉列表中返回“未找到结果”)并单击搜索按钮时,页面将刷新,根据输入的关键字显示所有结果
我还在SO中搜索了一些与我相同的问题,例如:
我没有找到运气。第二个链接没有任何答案
我将包括我的行动控制器在这里,以防你需要它
public function actionIndex()
{
$session = Yii::$app->session;
$searchModel = new PayslipTemplateSearch();
$PayslipEmailConfig = PayslipEmailConfig::find()->where(['company_id'=> new \MongoId($session['company_id'])])->one();
$payslipTemplateA = PayslipTemplate::find()->where(['company_id' => new \MongoId($session['company_id'])])->andwhere(['template_name' => 'A'])->one();
$payslipTemplateB = PayslipTemplate::find()->where(['company_id' => new \MongoId($session['company_id'])])->andwhere(['template_name' => 'B'])->one();
$pTemplateModel = PayslipTemplate::find()->where(['company_id' => new \MongoId($session['company_id'])])->all();
$user = User::find()->where(['_id' => new \MongoId($session['user_id'])])->one();
$module_access = explode(',', $user->module_access);
$dataProvider = User::find()->where(['user_type' => 'BizStaff'])->andwhere(['parent' => new \MongoId($session['company_owner'])])->all();
return $this->render('index', [
'PayslipEmailConfig' => $PayslipEmailConfig,
'dataProvider' => $dataProvider,
'payslipTemplateA' => $payslipTemplateA,
'payslipTemplateB' => $payslipTemplateB,
]);
}
我的视图,index.php
_search.php
确实需要这方面的帮助。此示例代码符合您的要求。所以,试试看 用户Searchmodel的
search()
方法
public function search($params)
{
$query = User::find();
$query->where(['user_type' => 'BizStaff'])->andwhere(['parent' => new \MongoId($session['company_owner'])])->all();
$dataProvider = new ActiveDataProvider([
'query' => $query,
]);
......
........
}
控制器的actionIndex
public function actionIndex()
{
$session = Yii::$app->session;
/* $searchModel = new PayslipTemplateSearch(); */
$PayslipEmailConfig = PayslipEmailConfig::find()->where(['company_id'=> new \MongoId($session['company_id'])])->one();
$payslipTemplateA = PayslipTemplate::find()->where(['company_id' => new \MongoId($session['company_id'])])->andwhere(['template_name' => 'A'])->one();
$payslipTemplateB = PayslipTemplate::find()->where(['company_id' => new \MongoId($session['company_id'])])->andwhere(['template_name' => 'B'])->one();
$pTemplateModel = PayslipTemplate::find()->where(['company_id' => new \MongoId($session['company_id'])])->all();
$user = User::find()->where(['_id' => new \MongoId($session['user_id'])])->one();
$module_access = explode(',', $user->module_access);
$searchModel = new UserSearch();
$dataProvider = $searchModel->search(Yii::$app->request->queryParams);
/*
$dataProvider = User::find()->where(['user_type' => 'BizStaff'])->andwhere(['parent' => new \MongoId($session['company_owner'])])->all();
*/
return $this->render('index', [
'PayslipEmailConfig' => $PayslipEmailConfig,
'dataProvider' => $dataProvider,
'payslipTemplateA' => $payslipTemplateA,
'payslipTemplateB' => $payslipTemplateB,
'searchModel' => $searchModel,
]);
}
和index.php
<?php
$users = User::find()->where(['user_type' => 'BizStaff'])->andwhere(['parent' => new \MongoId($session['company_owner'])])->all();
echo $this->render('_search', ['model' => $searchModel, 'users' => $users]);
?>
你能发布你的index.php
文件吗?你需要将searchModel
传递给索引文件。然后将searchModel
作为model
传递到\u search
文件。因此,我将使用它,echo$this->render(“'u search',['searchModel'=>new User(),'users'=>$users])代码>?否。如下所示$searchModel=newusersearch();echo$this->render('u search',['model'=>$searchModel,'users'=>$users])代码>确定。但是它是如何工作的呢?但是我使用Kartik作为我的搜索域。它有一个用于搜索的下拉列表。这有关系吗?因为是卡提克,所以不起作用。它有一个下拉列表,仅根据下拉列表显示结果。这是一张图片:请帮忙。我问了另一个与此相关的问题,这里我希望你仍然能帮忙(是的..我正在本地创建工作演示,所以请有一些耐心…:)
public function actionIndex()
{
$session = Yii::$app->session;
/* $searchModel = new PayslipTemplateSearch(); */
$PayslipEmailConfig = PayslipEmailConfig::find()->where(['company_id'=> new \MongoId($session['company_id'])])->one();
$payslipTemplateA = PayslipTemplate::find()->where(['company_id' => new \MongoId($session['company_id'])])->andwhere(['template_name' => 'A'])->one();
$payslipTemplateB = PayslipTemplate::find()->where(['company_id' => new \MongoId($session['company_id'])])->andwhere(['template_name' => 'B'])->one();
$pTemplateModel = PayslipTemplate::find()->where(['company_id' => new \MongoId($session['company_id'])])->all();
$user = User::find()->where(['_id' => new \MongoId($session['user_id'])])->one();
$module_access = explode(',', $user->module_access);
$searchModel = new UserSearch();
$dataProvider = $searchModel->search(Yii::$app->request->queryParams);
/*
$dataProvider = User::find()->where(['user_type' => 'BizStaff'])->andwhere(['parent' => new \MongoId($session['company_owner'])])->all();
*/
return $this->render('index', [
'PayslipEmailConfig' => $PayslipEmailConfig,
'dataProvider' => $dataProvider,
'payslipTemplateA' => $payslipTemplateA,
'payslipTemplateB' => $payslipTemplateB,
'searchModel' => $searchModel,
]);
}
<?php
$users = User::find()->where(['user_type' => 'BizStaff'])->andwhere(['parent' => new \MongoId($session['company_owner'])])->all();
echo $this->render('_search', ['model' => $searchModel, 'users' => $users]);
?>