Как сделать форму поиска для ввода данных от пользователей в yii2?

Мне нужно создать поисковую форму во внешнем интерфейсе, чтобы получать данные от пользователей и искать их в базе данных, а затем отображать данные в зависимости от этого ключевого слова.
Мне нужно использовать активную форму yii2, а не форму HTML.
Если какой-либо пример кода для поисковой формы, действия в контроллере сайта и в представлении, был бы рад.

Спасибо

-1

Решение

Вот основной 🙂

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; ?>
0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector