I'm new to yii2 and looking for a little of help.
This is part of my index.php
in the site controller (basic template yii2 views/site/index.php
)
<?= $this->render('//tours/_form.php ') ?>
And I need to render the tours/_form.php
(which is a view of tours controller) in this index.php
but the error is this:
Undefined variable: model
I think the problem is in the siteController but what should I add to it?
I understand how to render views that have the same controller, but I'm assuming that this maybe is different.
Thanks in advance for your help
Edit:
This my controller action from the site controller, this is just as gii generated it
public function actionIndex()
{
return $this->render('index');
}
maybe there I have to call the tour model?
from your index action you are not returning any model, you must return the model which you wan to access on your view page,
Note you can return multiple models also
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
}
model returned from your index action will be accessible on your view page Please refer Yii2 Controller guide to know more about action
Most likely you have not passed $model
variable to this partial view which is calling it. Do it like that:
<?= $this->render('//tours/_form.php', ['model' => $model) ?>
Of course for this to work there must be a $model
variable to pass. It usually is passed from the controller to the view in the same manner.
public function actionIndex()
{
$model = 1; // init the variable
return $this->render('index', ['model' => $model]);
}
But you have to set this variable first.