提问者:小点点

CakePHP:来自一个控制器的多个视图


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

1.ID
2。名称
3。类型

我用蛋糕烘焙创建了它的模型和控制器。但是我有多个视图,从那里的数据进入设置表。我的指定、部门、资格、项目和许多其他东西的数据进入设置表的类型字段,输入它们的名称。

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

请帮我找到一个实现这一目标的方法。。


共3个答案

匿名用户

我想你是在找

$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等。

匿名用户

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

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

function addDepartment() {
    // Logic here
}

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

匿名用户

您需要再次阅读模式模型视图控制器(MVC)是如何工作的。

如果要创建新部门,可能需要使用与部门模型关联的部门控制器

在每个控制器中,您将有与其关联的操作。这样,Cake Bake将为每个控制器生成添加删除编辑代码。

当然,您可以在自己喜欢的控制器中使用您希望的模型创建它们。但不要指望蛋糕烘焙会有不同的效果:)