在Yii中,我有一个属于A类的视图,在与该类对应的视图中,我想添加一个表单来创建另一个类的模型。
所以,在protected/views/pictures/myview.php
,我有:
<?php
/* @var $this PicturesController */
/* @var $model Pictures */
$objectForm = new Objects();
$newForm = ObjectsController::renderPartial('create',array('model'=>$objectForm),true);
?>
我正在尝试添加表单以呈现protected/views/objects/create.php
。但是上面的代码不起作用,因为视图仍在尝试从Pictures类加载创建表单。由于我收到错误,说明没有定义对象的相同属性,因为系统正在加载图片创建表单。
如何添加Objects模型的创建形式?
注意:我添加了#34; applications.controllers。*&#34;到main.php中的import数组,但我知道这是一个不好的做法。是否有任何可能的解决方案并不涉及我这样做?
感谢。
答案 0 :(得分:1)
在这种情况下,您只需要在renderPartial中链接正确的视图:
$objectForm = new Objects();
$newForm = ObjectsController::renderPartial('/objects/create',array('model'=>$objectForm),true); // "/objects/create", and not "create".
这些错误正在给出,因为Yii知道你正在渲染图片的创建视图,并且你给它了对象模型(而不是图片模型)。
如果我们在控制器中讨论渲染调用,并且您想要从另一个属于另一个控制器的操作渲染视图,则不会直接渲染到此视图。您必须“重定向”到另一个控制器(属于另一个类)的操作。
答案 1 :(得分:0)
试试这个
$this->renderPartial('application.staff.views.default.create',array());
这是格式
$this->renderPartial('context_text.views.display._display_text');