我需要在前端制作一个搜索表单以获取用户的输入并在数据库中搜索它,然后根据该关键字显示数据。我需要使用 yii2 活动表单而不是 HTML 表单。如果有搜索表单、站点控制器中的操作和视图的任何代码示例,那将是令人兴奋的。
谢谢
我需要在前端制作一个搜索表单以获取用户的输入并在数据库中搜索它,然后根据该关键字显示数据。我需要使用 yii2 活动表单而不是 HTML 表单。如果有搜索表单、站点控制器中的操作和视图的任何代码示例,那将是令人兴奋的。
谢谢
这是基本的:)
SiteController.php(控制器文件):
use yii\data\ActiveDataProvider;
use Yii;
class SiteController extends yii\web\Controller
{
public function actionSearch() {
$searchString = Yii::$app->request->get('query');
$searchQuery = Product::find()->where(['name' => $searchString])->orderBy(['ts' => SORT_DESC]);
$productDataProvider = new ActiveDataProvider(['query' => $searchQuery]);
return $this->render('search', compact('productDataProvider'));
}
search.php(查看文件):
<?php
use yii\helpers\Url;
use yii\grid\GridView;
$form = \yii\widgets\ActiveForm::begin([
'options' => ['role' => 'form', 'method' => 'GET', 'action' => Url::to(['site/search'])]
]); ?>
<?=$form->field($model, 'query')?>
<?=\yii\helpers\Html::submitButton('Поиск')?>
<?php $form->end()?>
<? if ($productDataProvider->totalCount): ?>
<?= GridView::widget([
'dataProvider' => $productDataProvider,
'columns' => [
'id',
'name'
],
]) ?>
<? else: ?>
<p>Ничего не найдено</p>
<? endif; ?>