1

我正在尝试制作一个复选框,在它之前有一个标签,它没有附加到输入,而在控制实际输入的复选框之后有一个标签。它在页面上应该如下所示:

Account Suspended:  [X] Prevent the user from logging in

视图.ctp

$this->Form->label('Account Suspended');
$this->Form->input('account_suspended', array(
    'type' => 'checkbox',
    'label' => 'Prevent the user from logging in'
));

我目前遇到的问题是,第一个标签是使用for与输入 ID 匹配的自动生成的属性创建的,因此如果您单击它们,两个标签都会切换复选框。

CakePHP 为第一个标签生成的标记如下所示,因为它会自动将标签值转换为for属性的驼峰式 ID:

<label for="CustomerAccountSuspended">Account Suspended:</label>

我希望第一个标签是:

<label>Account Suspended:</label>

如何使用 cakePHP FormHelper 做到这一点,而不是手动输入标签 HTML?

4

2 回答 2

3

这是可能的:

echo $this->Form->label('Account Suspended', null, array('for' => false));

不要忘记使用翻译 :P 几乎每个代码的每个部分都是可重用的。如果您现在不需要它,您可能会在其他项目中腾出一些时间;)

问候 func0der

于 2012-11-16T21:39:59.660 回答
0

你不会输入纯 HTML 什么?如果您不需要自动生成的for属性,我认为无需调用 FormHelper。

echo '<label>Account Suspended:</label>';
$this->Form->input('account_suspended', array(
    'type' => 'checkbox',
    'label' => 'Prevent the user from logging in'
));

或者

<label>Account Suspended:</label>
<?php
$this->Form->input('account_suspended', array(
    'type' => 'checkbox',
    'label' => 'Prevent the user from logging in'
));

将是完全有效的

于 2012-11-16T13:19:49.460 回答