簡體   English   中英

CakePHP:來自一個控制器的多個視圖

[英]CakePHP : Multiple views from One Controller

我第一次在CakePHP中工作。 我需要為單個控制器創建多個視圖。
例如:我有一個設置表。

設置表的架構

1.ID
2.名稱
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文件來添加視圖(“視圖/“模型名稱” /add_department.ctp)

在“型號名稱”控制器中,您只需添加

function addDepartment() {
    // Logic here
}

但是,如果只想設置類型,則可以創建一個普通的add.ctp並使用所有可能的類型創建一個Selectbox。

您需要再次閱讀模式模型視圖控制器(MVC)的工作方式。

如果要創建一個新部門,則可能要使用與Department模型關聯的departmentsController

在每個控制器中,您將具有與其關聯的動作。 這樣,Cake Bake將為每個控制器生成adddeleteedit代碼。

當然,您可以在自己喜歡的控制器中使用自己想要的模型自己創建它們。 但是不要指望Cake烘烤會有所不同:)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM