我是yii2的新手并且正在寻求一些帮助。
这是我在网站控制器index.php
中的一部分(基本模板yii2 views/site/index.php
)
<?= $this->render('//tours/_form.php ') ?>
我需要在tours/_form.php
index.php
(这是巡视控制器的视图)
但错误是这样的:
未定义的变量:模型
我认为问题出在siteController中 但我应该添加什么呢?
我理解如何渲染具有相同控制器的视图,但我假设这可能不同。
提前感谢您的帮助
编辑:
我的控制器操作来自站点控制器,这就像gii生成它一样
public function actionIndex()
{
return $this->render('index');
}
也许在那里我必须打电话给旅行模型?
答案 0 :(得分:0)
很可能你没有将$model
变量传递给调用它的局部视图。这样做:
<?= $this->render('//tours/_form.php', ['model' => $model) ?>
当然,为了实现这一点,必须有一个$model
变量才能通过。它通常以相同的方式从控制器传递到视图。
public function actionIndex()
{
$model = 1; // init the variable
return $this->render('index', ['model' => $model]);
}
但你必须先设置这个变量。
答案 1 :(得分:0)
从你的索引操作中你没有返回任何模型,你必须返回你想在视图页面上访问的模型,
注意您也可以返回多个模型
public function actionIndex()
{
$model = User::find()->where(['name' => 'CeBe'])->one(); // dummy example
return $this->render('index', ['model'=>$model]); // this can be used on your index page
}
您可以在视图页面上访问从索引操作返回的模型 请参阅Yii2 Controller guide了解有关行动的更多信息