2016-04-10 1 views
-1

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

Благодаря

+0

сделать вы хотите увидеть результат запроса в gridview? – scaisEdge

ответ

0

Вот основная одна :)

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

Спасибо @hutsi, но это не сработало. Я решил проблему. еще раз спасибо – elmajico

Смежные вопросы