我是CakePHP编程的绿手,我对FormHelper的用法有疑问 -
如果我们在View中使用FormHelper,它将输出一些HTML代码,所有这些代码都在CakePHP中定义(我认为)。问题是,所有这些代码都与我已经拥有的HTML模板不同,所以我需要更改HTML模板,包括html和css,以符合FormHelper约定。对我来说,这很有用。
我想知道,当我开始创建一个网站时,通常我会从设计师那里获得所有模板,但设计师自己制作所有的HTML,他们根本不知道CakePHP约定,所以如何制作所有模板更容易应用于CakePHP?
自定义FormHelper html模板?或者只是放弃它们?
答案 0 :(得分:0)
CakePHP表单助手的输出可以开箱即用。字段的基本格式如下所示:
<div class='input extra classes'>
<label for='control_id'>Label</label>
<input id='control_id' name='control_name'/>
<div class='error'>Validation error message</div>
</div>
这是关于你可以通过设置任何表单元素的最小标记。
您可以使用Form :: input()的'before','between','after'等选项注入额外的标记;
当然,你不必使用表单助手(尽管制作表单需要大量的狗工作)。您可以将表单的原始HTML放到视图中。
这样做的问题是,当验证失败时,您将看不到生成的错误消息,并且您还需要确保使用确切的命名约定。 输入名称属性,以确保您的表单与Cake的验证一起使用。
一种简单的方法是只需在页面中添加常规回显$ this-&gt; Form-&gt; input(),然后将generate中的name属性复制到html标记中。
所有这些都说,我并不总是做自己的标记,并且还没有收到第三方的标记,这些标记无法用Cake的Form帮助器和一些CSS模仿。
如果您发布了您尝试重新创建的表单示例,我们可以更好地回答这个问题。