我在CakePHP中有一个表单,里面有几十个字段.从我看到的所有示例中,添加视图和编辑视图都有重复的表单代码.
是否有任何技巧可以防止重复?CakePHP中最好的方法是什么?
kak*_*lon 14
我所做的是将所有表单字段放在一个元素中,然后将该元素插入add.ctp和edit.ctp中
不要忘记在edit.ctp中添加带有id的隐藏字段
这样,所有可见元素都在一个文件中,更易于维护.
View/MyModel/add.ctp
echo $this->Form->create('MyModel');
echo $this->element('my_form');
echo $this->Form->end();
View/MyModel/edit.ctp
echo $this->Form->create('MyModel');
echo $this->Form->input('id');
echo $this->element('my_form');
echo $this->Form->end();
View/Elements/my_form.ctp
// your form inputs
// whatever they are
Run Code Online (Sandbox Code Playgroud)
你应该不合并这些意见,因为添加/编辑是不同的动作,值得单独的视图文件.随着应用程序的增长,您将意识到拥有单独的视图可以降低复杂性if else conditions.
如果您仍想避免使用单独的文件,请使用
function add() {
.....
$this->render('edit')
}
Run Code Online (Sandbox Code Playgroud)
我以前做过这个,但又回到了单独的观点,主要是为了我自己的理智.
这很容易做到.编辑需要输入记录ID.这通常是隐藏的.添加表单的任何默认表单值都必须包含在条件中,以便在编辑记录时不会使用默认值覆盖存储的值
在控制器方面,您需要一个条件语句来决定是否作为添加或编辑,具体取决于是否$this->data['MyModel']['id']设置.
我认为这涵盖了它 - 如果我想到其他任何我会添加它.
我的工作模式往往是构建编辑视图,然后复制并粘贴以创建添加视图的基础.
| 归档时间: |
|
| 查看次数: |
1543 次 |
| 最近记录: |