我是一个CakePHP编程的新手,我有一个关于FormHelper用法的问题-
如果我们在视图中使用FormHelper,它会输出一些HTML码,所有这些代码都是用CakePHP定义的(我想)。问题是,所有这些代码都不同于我已经有的超文本标记语言模板,所以我需要改变超文本标记语言模板,包括超文本标记语言和css以符合FormHelper约定。对我来说,这是很有效的。
我想知道,当我开始做一个网站时,通常我会从设计师那里得到所有的模板,但是设计师自己制作所有的html,他们根本不知道CakePHP约定,所以我怎么才能让所有的模板更容易应用到CakePHP上呢?
是否自定义FormHelper html模板?还是干脆抛弃他们?
发布于 2013-02-07 17:34:13
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直接放入视图中。
这样做的问题是,当验证失败时,您将看不到生成的错误消息,并且您还需要确保对input name属性使用准确的命名约定,以确保您的表单可以使用Cake的验证。
一种简单的方法是在页面中添加一个常规的echo $ this ->Form->input(),并将生成的name属性复制到html标记中。
话虽如此,我并不总是自己做标记,而且还没有收到来自第三方的标记,这些标记不能用Cake的表单助手和一些CSS来模仿。
如果你发布了一个你试图重新创建的表单的例子,我们可以更好地更详细地回答这个问题。
https://stackoverflow.com/questions/14747586
复制相似问题