2014-05-21 22 views
0

我有一个视图,我想在其中显示另一个控制器的窗体和视图。 因此,'Bedrijf'视图拥有'Vacature'形式和'Vacature'视图。YII,当我在视图中添加视图时,它使用父控制器

我可以添加表格,可以调用另一个控制器是这样的:

<?php 
     $model=new Vacature; 
     $this->renderPartial('//vacature/_form', array('model'=>$model)); 
    ?> 

只有当我加入我的看法使用parent(bedrijf)控制器以同样的方式:

<?php 
     $dataProvider=new CActiveDataProvider('Vacature'); 
     $this->render('//vacature/index',array(
      'dataProvider'=>$dataProvider, 
     )); 
    ?> 

我怎样才能让它使用它自己的控制器?

+0

所以,你的第一个代码作品和第二不起作用? – Jurik

+0

是的。第二个在网址bedrijven/_view中给出错误。它正在寻找bedrijven的参数,这是不存在的,因为vacature/index要求... 当我没有添加'// vacature /'时,我和第一个错误有相同的错误,但对于这个诀窍。 – Daniel

+1

该视图只是一个“模板”,并不直接绑定到控制器。您可以从不同的控制器调用相同的视图。但是如果你想插入一个视图来处理另一个控制器,你不只是想“渲染”它,而是你想调用整个“action”..这个工作怎么样 – Asped

回答

0

您可以使用此行

$this->renderPartial('../view_folder/_form', array('model'=>$model)); 
+0

好吧,那是一个工作是的。但我需要包括'vacature/index'。那个人现在使用'bedrijven'控制器替代'vacature'控制器... – Daniel

+0

将您的表单动作添加为'action'=> $ this-> createUrl('controller/action'), – MH2K9

相关问题