2013-02-07 125 views
0

我非常绿色的手在CakePHP中编程,我已经在表单助手的使用问题 -表单助手HTML模板定制

如果我们使用表单助手在视图,它会输出一些HTML代码,所有这些代码在CakePHP中定义(我认为)。问题是,所有这些代码都不像我已有的HTML模板一样,所以我需要更改HTML模板,包括HTML和CSS以符合FormHelper约定。对我来说,这是一个很大的工程。

我想知道,当我开始制作一个网站时,通常我会从设计师处获得所有模板,但设计师自己制作所有的html,并且他们根本不知道CakePHP约定,所以我怎样才能使所有模板更容易应用于CakePHP?

自定义FormHelper的html模板?或者放弃他们?

回答

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's验证。

一个简单的方法就是在页面中添加一个常规的echo $ this-> Form-> input(),并将name中的name属性复制到你的html标记中。

所有这些都说了,我并不总是做我自己的标记,并且还没有收到第三方的标记,这些标记无法用Cake的Form帮助器和一些CSS来模拟。

如果您发布了一个您尝试重新创建的表单的示例,我们可以更好地解答这个问题,并提供更好的细节。

+0

谢谢,我已经从CakePHP读了一些东西,并按照您的建议,这真的很有帮助。 – Tom