CakePHP - 更改标签的“for”属性

时间:2012-11-16 13:10:53

标签: cakephp cakephp-2.0

我正在尝试创建一个复选框,其前面没有附加到输入的标签,以及控制实际输入的复选框后面的标签。它应该在页面上看起来像这样:

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

view.ctp

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

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

CakePHP为第一个标签生成的标记看起来像这样,因为它会自动将标签值转换为for属性的驼峰式ID:

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

我希望第一个标签是:

<label>Account Suspended:</label>

如何使用cakePHP FormHelper执行此操作,而不是手动输入标签HTML?

2 个答案:

答案 0 :(得分:3)

有可能:

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

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

问候 func0der

答案 1 :(得分: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'
));

完全有效