CakePHP:来自One Controller的多个视图

时间:2013-07-25 14:27:36

标签: php cakephp

我第一次在CakePHP工作。我需要为单个控制器创建多个视图 例如:我有一个设置表。

设置表的模式

1.ID
2.Name
3,01,05,06

我使用蛋糕烘焙创建了它的模型和控制器。但我有多个视图从数据进入设置表的位置。我的指定,部门,资格,项目和许多其他内容的数据都会进入设置表的类型字段,并输入其名称。

因此,当我通过蛋糕烘焙创建模型和控制器时,它根据设置表创建视图,而我需要按类型查看页面,即创建指定,创建部门,创建项目以及查看,编辑和删除文件对他们来说。

请帮我找到实现目标的方法..

3 个答案:

答案 0 :(得分:2)

我认为你在寻找

$this->render('viewfilename');

根据需要创建任意数量的视图,然后在控制器的特定视图中发送。

例如:

public function add($type) {
    if ($this->request->is('post')) {
        ...
    }

    $this->set(............);

    switch ($type) {
        case 'designations':
            $this->render('add_designations');
            break;
        case 'departments':
            $this->render('add_departments');
            break;
        case 'qualifications':
            $this->render('add_qualifications');
            break;
    }

}

并在视图文件夹中将视图文件设置为add_designations.ctp,add_departments.ctp,add_qualifications.ctp等。

答案 1 :(得分:1)

您可以通过在相应的视图文件夹中创建.ctp文件来添加视图(Views /“Modelname”/add_department.ctp)

在“Modelname”控制器中,您只需添加

function addDepartment() {
    // Logic here
}

但是如果你只想设置类型,你可以创建一个普通的add.ctp并创建一个包含所有不同类型的Selectbox。

答案 2 :(得分:0)

您需要再次阅读模型视图控制器(MVC)的工作原理。

如果您想创建新部门,可能需要使用与departmentsController模型相关联的Department

在每个控制器中,您将拥有与之关联的操作。这样,Cake Bake将为每个控制器生成adddeleteedit代码。

当然,你可以在控制器中自己创建它们,你喜欢使用你想要的模型。但不要指望Cake烘焙工作方式不同:)