2016-04-12 13 views
0

Gestern stieß ich auf ein Problem mit Yii2 ActiveForm. Ich baue ein Suchformular für meine Website, aber wenn ich die Seite lade, die alle Autos auflistet (hier findet das Suchformular), wird Aufruf an eine Mitgliedsfunktion formName() auf null Exception. Zuerst änderte ich den DataProvider, um das $ -Modell zu verwenden, $ dataProvider gab NULL die ganze Zeit zurück. Wenn ich die Daten zurückschicke, die in $ Model zurückkommen, kann ich alle Daten sehen, die in der Tabelle gespeichert sind. (So ​​weit so gut) Mein Ziel wäre, zum Beispiel UserGroups als Suchbedingung zu drucken.Yii2 ActiveForm für Suche verwenden

Was denken Sie, was könnte das Problem sein? Es ist klar, dass ActiveForm keine relevante Datenquelle erhält, die nicht leer ist, aber wie geschrieben wurde, habe ich Daten in $ model.

Controller-Datei:

/** 
    * Aktív gépkocsik listázása 
    * @return string 
    */ 
    public function actionIndex() { 
     $this->vanJogosultag(Url::current(), self::VIEW); 
     $dataProvider = new ActiveDataProvider([ 
      'query' => Gepkocsi::find(), 
     ]); 

     $model = Gepkocsi::find()->all(); 

     return $this->render('lista', array('dataProvider' => $dataProvider, 'model' => $model)); 
} 

_search.php (teilweise für serach Form)

<!-- Gépkocsi felhasználói csoport --> 
     <div class="offset col-xs-8 col-xs-offset-2"> 
      <?= $form->field($model['rendszam'], 'rendszam')->textInput() ?> 
     </div> 

Ansicht Datei, wo ich die teilweise in der Listenansicht sind

<?= $this->render('_search', [ 
     'model' => $model 
    ]); ?> 

Vielen Dank für Ihre Antworten! Einen schönen Tag noch!

Gábor

Antwort

0

Warum nicht Datenprovider Abfrage ändern alle Artikel suchen als Modell tut?

$dataProvider = new ActiveDataProvider([ 
    'query' => Gepkocsi::find()->all(), 
]); 
+0

Es ist, weil ich ein DetailView Widget auf der gleichen Seite verwenden und dieses Widget wartet auf diese Art von Ergebnis. Ich habe versucht, aber es funktioniert nicht, wirft diesen Fehler: ** Die "Abfrage" -Eigenschaft muss eine Instanz einer Klasse sein, die das QueryInterface implementiert, z. yii \ db \ Query oder seine Unterklassen. ** – Gabesz

0

Okay, ich habe die Lösung für mein Problem gefunden. Es war total meine Schuld. Die Lösung war einfach erstellen Sie eine neue Instanz des Gepkocsi-Modells und übergeben Sie es an die teilweise und voila es funktioniert. Danke für deine Antworten und deine Mühe!