2016-10-15 64 views
0

我刚刚启动Yii2框架。
我想创建一个1到10的下拉列表和一个提交按钮
一旦选择了该选项并点击按钮应该转到下一页来显示我选择的数字。yii2:未定义变量:model

在我看来文件:在下拉列表中有: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(); ?> 

然后当我去它给我的页面“的模式未定义的变量”。

我该怎么做才能使其正确?

Html和CHtml有什么不同?

谢谢。

+1

'Activeform'中使用的字段应该与'model'关联。显示呈现视图的控制器动作。 –

+0

嗨,谢谢,我已经发现了错误。 –

回答

0

此代码是form.php而不是index.php。因为我们可以看到,有积极的形式。 你的模型是不确定的,也许你写了错误的代码

这是典型控制器的index.php

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

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

的HTML和cHTML是一样的Yii1 =了CHtml 在Yii2 = HTML

0

这是要分页?如果是使用网格视图的默认功能。

这正好控制器

$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

这正好视图

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

Read more

0

其实你的模型没有加载,请检查下面的例子。

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); 
    }