2016-04-10 11 views
-1

Ich muss ein Suchformular im Frontend erstellen, um Eingaben von Benutzern zu erhalten und in der Datenbank danach zu suchen, und dann die Daten abhängig von diesem Schlüsselwort anzeigen. Ich brauche yii2 aktive Form nicht HTML-Formular. Wenn ein Codebeispiel für das Suchformular, die Aktion in Site Controller und die Ansicht, wäre es Rost.Wie wird ein Eingabesuchformular erstellt, um Daten von Benutzern in yii2 zu übernehmen?

Dank

+0

tun Sie möchten das Ergebnis der Abfrage in der Gridview sehen? – scaisEdge

Antwort

0

Hier wird die Basis-one :)

SiteController.php (Controller-Datei):

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 (View-Datei):

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

Danke @hutsi, aber es hat nicht funktioniert. Ich löste das Problem. Danke noch einmal – elmajico