2016-10-15 6 views
0

Ich beginne gerade Yii2 Rahmen.
Ich möchte eine Dropdown-Liste erstellen, die 1 bis 10 ist und eine Schaltfläche senden
Sobald wählen Sie die Option und klicken Sie auf die Schaltfläche sollte zur nächsten Seite gehen, um die Nummer, die ich wählen.yii2: Undefinierte Variable: Modell

Meiner Ansicht Datei: auf Drop-Down-Liste gibt: index.php

use yii\widgets\ActiveForm; 
<?php $form = ActiveForm::begin(); ?> 
    <?= $form->field($model, 'QTY')->dropDownList(range(1, 10)) ?> 
    <?= Html::submitButton('Buy', ['class' => 'btn btn-primary']) ?> 
<?php ActiveForm::end(); ?> 

Dann, wenn ich auf die Seite gehen, um es mir ‚-Modell Variable nicht definiert‘ gab.

Was soll ich tun, um es richtig zu machen?

Und was ist der Unterschied zwischen Html und CHtml?

Danke.

+1

Das in 'Activeform' verwendete Feld sollte mit' Modell' verknüpft sein. Zeigen Sie Ihre Controller-Aktion, die die Ansicht rendert. –

+0

Hallo danke, ich habe den Fehler schon herausgefunden. –

Antwort

0

Dieser Code ist form.php nicht index.php. weil wir sehen können, gibt es aktive Form. Ihr Modell ist nicht definiert vielleicht schreiben Sie den falschen Code

dies ist Beispiel für Controller index.php

public function actionIndex() 
 
    { 
 
     $searchModel = new PersediaanBarangSearch(); 
 
     $dataProvider = $searchModel->search(Yii::$app->request->queryParams); 
 

 
     return $this->render('index', [ 
 
      'searchModel' => $searchModel, 
 
      'dataProvider' => $dataProvider, 
 
     ]); 
 
    }

Html und CHTML ist die gleiche in Yii1 = CHtml in Yii2 = Html

0

Dies ist eine Paginierung? Wenn ja, verwenden Sie die Standardfunktionalität der Rasteransicht.

Dies geht zu Controller:

$query = Post::find()->where(['status' => 1]); 

$provider = new ActiveDataProvider([ 
    'query' => $query, 
    'pagination' => [ 
    'pageSize' => 10, 
    ], 
    'sort' => [ 
    'defaultOrder' => [ 
     'created_at' => SORT_DESC, 
     'title' => SORT_ASC, 
    ] 
], 
]); 
return $this->render('path_to_view',['dataProvider'=>$provider]); 

Read more

Dies geht zu Ansicht:

GridView::widget([ 
    'dataProvider' => $dataProvider, 
    'columns' => [ 
    'id', 
    'name', 
    'created_at:datetime', 
    // ... 
    ], 
]); 

Read more

0

Eigentlich ist das Modell nicht geladen. Bitte prüfen Sie das Beispiel unten.

public function actionIndex($id = Null) 
    { 
     $data=array(); 
     $data['model'] = !empty($id) ? \app\models\YourModel::findOne($id) : new \app\models\YourModel(); 

     return $this->render('index', $data); 
    }