1

入力に添付されていないラベルをその前に付け、チェックボックスの後に実際の入力を制御するラベルを付けて、チェックボックスを作成しようとしています。ページ上では次のようになります。

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'
));

私が現在抱えている問題はfor、入力の ID と一致する自動生成された属性を使用して最初のラベルが作成されているため、両方のラベルをクリックするとチェックボックスが切り替わることです。

forラベル値を属性のキャメルケース ID に自動的に変換するため、CakePHP が生成した最初のラベルのマークアップは次のようになります。

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

最初のラベルを次のようにしたい:

<label>Account Suspended:</label>

ラベル HTML を手動で入力するのではなく、cakePHP FormHelper を使用してこれを行うにはどうすればよいですか?

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 に答える