6

Form ヘルパーを使用してラベルを生成しています。

$this->Form->label('Contact.name', 'Name');

これにより、次が生成されます。

<label for="ContactName">Name</label>

ヘルパーを使用して以下を生成することは可能ですか:

<label for="ContactName"><span class="mandatory">*</span> Name</label>

上記の html を手動で記述することはできますが、ラベルが自動的に生成される入力方法を使用している場合は、少し難しくなります。

例えば:

$this->Form->input('Contact.forename',array('div' =>false,
                   'label' => array(
                   text'=> 'First Name',class =>'myclass'),
                   'class' => 'input','size' => '25' ,'tabindex' => '1'));

これはケーキで可能ですか、それともページの読み込み時にjavascriptを使用してhtmlを手動で挿入する必要がありますか? これはかなり醜いと思います。

4

4 に答える 4

8

必須フィールドにモデル検証を使用している場合、cakephp は自動的にラベルに「*」を適用します。それ以外の場合は、次のようにヘルパーを使用できます-

echo $this->Form->label('name', '<span class="mandatory">*</span> Name');

ラベルを自動的に生成したくない場合は、ヘルパーの使用中に「label => false」を使用できます。

echo $this->Form->input('Contact.forename',array('label' =>false));
于 2012-08-01T08:02:50.447 に答える
4

CakePHP がそれをサポートしているかどうかは定かではありません (とにかく少し面倒です)。私が考えることができる最も簡単な解決策は、フォームヘルパーを介して「必須」クラスをラベルに割り当てることです。

$this->Form->label('User.name', 'Your username', array('class'=>'mandatory'));

次のようなものが生成されます。

<label class="mandatory" for="ContactName">Name</label>

その後、残りは純粋に CSS で行われます。

label.mandatory:after {
    content: ' *';
    color: red;
    display: inline;
}

追加の HTML を避ける。

于 2012-08-01T00:44:15.393 に答える
0

あなたはそれを簡単に行うことができます

echo $this->Form->input('whatever', array('between'=>'<label for="ContactName"><span class="mandatory">*</span> Name</label>','label'=>false));
于 2014-02-28T11:59:17.340 に答える