关于php:FormHelper Html模板定制

FormHelper Html Template Customization

我是 CakePHP 编程的新手,我对 FormHelper 的使用有疑问 -

如果我们在 View 中使用 FormHelper,它会输出一些 HTML 代码,所有这些代码都是在 CakePHP 中定义的(我认为)。问题是,所有这些代码都与我已经拥有的 HTML 模板不同,所以我需要更改 HTML 模板,包括 html 和 css 以符合 FormHelper 约定。对我来说,这很有效。

我在想,当我开始做网站的时候,一般我都会从设计师那里得到所有的模板,但是设计师自己制作所有的html,他们根本不知道CakePHP的约定,那我怎么才能全部制作呢?模板更容易应用于 CakePHP?

自定义 FormHelper html 模板?还是干脆放弃他们?


CakePHP 的表单助手的输出是非常可定制的。字段的基本格式如下所示:

1
2
3
<label for='control_id'>Label</label>
<input id='control_id' name='control_name'/>
Validation error message

这只是你可以用来设计任何表单元素的最小标记。

您可以使用 Form::input();

的 'before'、'between'、'after' 等选项注入额外的标记

当然,您不必使用表单助手(尽管制作表单需要花费大量精力)。您可以将表单的原始 HTML 传递到视图中。

这样做的问题是,当验证失败时您不会看到生成的错误消息,您还需要确保使用准确的命名约定
输入名称属性以确保您的表单与 Cake 的验证一起使用。

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

话虽如此,我并不总是自己做标记,而且还没有收到来自第三方的标记,这些标记无法用 Cake 的表单助手和一些 CSS 来模仿。

如果您发布您尝试重新创建的表单的示例,我们可以更好地更详细地回答这个问题。