2014-09-04 28 views
0

我使用CakePHP 2.4。我有一個博客,可以添加和編輯帖子。當我實現我的edit.ctp,我承認,我有相同的代碼視圖add.ctp如何使用相同的形式在多個視圖

<?php 
    echo $this->Form->create(); 
    echo $this->Form->input('headline'); 
    echo $this->Form->input('text', array('type' => 'textarea'); 
    echo $this->Form->end('Save'); 
?> 

(簡化代碼)

關於CakePHP's的建議,我想保持我的代碼幹。只有一次定義表單並在兩個視圖中使用它的最佳方式是什麼?

+0

[元素](http://book.cakephp.org/2.0 /en/views.html#elements)? – AgRizzo 2014-09-04 18:34:44

+1

你也可以使用$ this-> render('edit');在添加如果你有edit.ctp其中有相同的代碼,你想在add.ctp – Abhishek 2014-09-04 20:09:33

回答

4

與表單創建代碼中的文件夾元素的視圖

// app/View/Elements/postForm.ctp 

<?php 
    echo $this->Form->create(); 
    echo $this->Form->input('headline'); 
    echo $this->Form->input('text', array('type' => 'textarea'); 
    echo $this->Form->end('Save'); 
?> 

然後將其包含在所希望的視圖

echo $this->element('postForm'); 
+0

在CakePHP中正常工作。謝謝。 – Simon 2014-09-04 19:27:58

+0

如果添加和編輯完全相同,只需重寫控制器中添加/編輯操作中呈現的視圖:'$ this-> render('postForm');'如果創建100%完全相同的表單作爲元素,你最終會得到只有'echo $ this->元素('postForm')'的行的添加和編輯視圖,這很浪費。 – Kai 2014-09-04 20:47:58

+0

@凱:謝謝你的評論。我在視圖編輯和添加中使用100%相同的表單。但這兩種觀點並不完全相同。除了它們在一些html元素中的不同之處。 – Simon 2014-09-05 06:01:43

相關問題