2

cakephp 中的表单助手通常会生成这样的表单元素:

<div class="input text">
  <label for="Firstname">Firstname</label>
  <input type="text" id="Firstname" value="" class="test" name="Firstname"/>
</div>

<label>但是是否可以删除介于 the和 the之间的换行符<input>以具有如下内容:

<div class="input text">
  <label for="Firstname">Firstname</label>    <input type="text" id="Firstname" value="" class="test" name="Firstname"/>
</div>

请问有什么想法吗?

谢谢

4

2 回答 2

7

“换行符”不在 HTML 中,而是在默认的 CakePHP CSS 中。为了解决这个问题,我在我烘焙的 CakePHP 应用程序中添加了以下 CSS 规则:

label {
    display: inline;
    width: 20%;
    float: left;
}
input, textarea {
    width: 76%;
    clear: none;
}
form div.submit {
    clear: none;
    display: inline;
}

这基本上内联了标签和输入,并为它们适当地设置了宽度(您可能想要更改应用程序的数字,具体取决于长度。)

让我知道这个是否奏效。您可以将这些行添加到 APP/webroot/css/cake.generic.css 的底部,或者根据需要添加新的 CSS 文件。

于 2012-05-10T22:14:55.833 回答
0

我同意@srs2012 的回答,但是有一种方法可以格式化表单助手的输出。

FormHelper::input() 动作的第二个参数也接受一个“格式”键。此键是元素顺序的格式模板。默认输入格式顺序为:

array('before', 'label', 'between', 'input', 'after', 'error')

任何不在数组中的元素都不会出现在输出中。因此,如果您修改它并删除“between”键,它可能会起作用。

举个例子:

echo $this->Form->input('Model.name', array('format' => array('before', 'label', 'input', 'after', 'error')));

实际上,我在一个项目中只需要使用一次此设置。位于 CakePHP 1.3 API 中。试一试,看看你能想出什么。

于 2012-05-11T09:16:11.003 回答