0

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

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

我在想,当我开始做网站的时候,通常我会从设计师那里得到所有的模板,但是设计师自己制作所有的html,他们根本不知道CakePHP的约定,所以我怎样才能让所有的模板更容易应用于蛋糕PHP?

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

4

1 回答 1

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 的验证。

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

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

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

于 2013-02-07T09:34:12.947 回答