2016-04-10 6 views
-1

フロントエンドで検索フォームを作成して、ユーザーからの入力とデータベースでの検索を行い、そのキーワードに応じてデータを表示する必要があります。 HTMLフォームではなくyii2アクティブフォームを使用する必要があります。 検索フォーム、サイトコントローラのアクション、およびビューのコード例があれば、それはgrateになります。ここで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

関連する問題