2014-09-04 29 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

相关问题