yii2:未定义的变量:模型

时间:2016-10-15 10:50:31

标签: yii2-advanced-app

我刚刚开始使用Yii2框架 我想创建一个1到10的下拉列表和一个提交按钮
选择选项并单击按钮后,应转到下一页以显示我选择的数字。

在我的视图文件中: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(); ?>

然后,当我转到页面时,它给了我&#39;未定义变量:model&#39;在那里的下拉列表中。

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

Html和CHtml有什么不同?

感谢。

3 个答案:

答案 0 :(得分:0)

这段代码是form.php而不是index.php。 因为我们可以看到,有活跃的形式。 您的模型未定义可能您写错了代码

这是控制器index.php的示例

&#13;
&#13;
#nav li a{
white-space: nowrap;
&#13;
&#13;
&#13;

Html和Chtml是一样的 在Yii1 = CHtml 在Yii2 = Html

答案 1 :(得分:0)

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

这是 controller

texture

Read more

这将转到 view

 $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

答案 2 :(得分: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);
    }