【问题标题】:CakePHP : Multiple views from One ControllerCakePHP : 来自一个控制器的多个视图
【发布时间】:2013-07-25 14:27:35
【问题描述】:

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

设置表架构

1.ID
2.姓名
3.类型

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

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

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

【问题讨论】:

    标签: php cakephp


    【解决方案1】:

    我想你正在寻找

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

    【讨论】:

    • 如果我在控制器目录中有pagesController,我应该在视图文件夹内的Pages 目录中创建这三个文件?
    【解决方案2】:

    您可以通过在相应的视图文件夹(视图/“模型名称”/add_department.ctp)中创建一个 .ctp 文件来添加视图

    在您的“模型名称”控制器中,您只需添加

    function addDepartment() {
        // Logic here
    }
    

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

    【讨论】:

      【解决方案3】:

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

      如果您想创建一个新部门,您可能希望使用与Department 模型关联的departmentsController。

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

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

      【讨论】:

      • 这就是问题所在..我的部门需要先在设置表中设置。即,如果我想创建一个销售部门,我需要在设置表中执行此操作。因此,我需要针对不同类别的不同观点。我怎样才能实现它?
      • 如果您的数据库中有一个表,其中保存了与部门相关的所有数据(通常称为department),您应该使用departmentsController,如果您需要修改setting 表,您只需从 departmentsController 调用 Setting 模型,使用 var uses
      • 记住一个控制器可以使用多个模型。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-08-11
      • 2012-04-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-02
      相关资源
      最近更新 更多