2

私は CakePHP の新しいユーザーです。入力とラベルを含む div を追加しようとしています。

これは私が持っているものです:

<?php 
$option =  array ("value1" => "labelContent1", "value2" => "abelContent2");
echo $this->Form->input('name', array('type' => 'radio', 'options' =>  $option, 'div' => true, "legend" => false));
?>

<div class="input radio">
    <input type="hidden" name="data[Quiz][name]" id="ModelName_" value=""/>
    <input type="radio" name="data[Quiz][name]" id="ModelName1" value="value1" />
    <label for="ModelName1">labelContent1</label>

    <input type="radio" name="data[Quiz][name]" id="ModelName2" value="value2" />
    <label for="ModelName2">labelContent2</label>
</div>       

そして、これは私が持ちたいものです:

<div class="input radio">
    <input type="hidden" name="data[Quiz][name]" id="ModelName_" value=""/>
    <div>
        <input type="radio" name="data[Quiz][name]" id="ModelName1" value="value1" />
        <label for="ModelName1">labelContent1</label>
    </div>
    <div>
        <input type="radio" name="data[Quiz][name]" id="ModelName2" value="value2" />
        <label for="ModelName2">labelContent2</label>
    </div>
</div>     

FormHelper を使用して作成できるかどうか知っていますか?

4

4 に答える 4

6

それが古いスレッドであることは知っていますが、返信する必要がありました。不適切なマークアップを作成せずにこれを実現する正しい方法は、 before および after オプションを使用することです。

echo $this->Form->input('name', array( 'type' => 'radio',
                                     'separator'=> '</div><div>',
                                     'before' => '<div>',
                                     'after' => '</div>',
                                     'options' =>  $option,
                                     'label' => true,
                                     "legend" => false
                                   )
                                );
于 2013-08-06T05:28:23.597 に答える
1
you can try this

$option =  array ("value1" => "labelContent1", "value2" => "abelContent2");

    echo $this->Form->input('name', array( 'type' => 'radio',
                                        'separator'=> '</div><div>',
                                         'options' =>  $option,
                                          'label' => true,
                                          "legend" => false
                                         )
                                    );
于 2012-08-14T22:22:26.897 に答える
1

Form Helper ではそれを達成できないようです。無線オプションは何もラップされていません。コードを参照してください。

Form->input オプションに追加'separator' => '<br/>'して、各オプションを独自の行に表示できます。

または自分で実装します。

于 2012-08-09T14:58:13.563 に答える
0
<?php 
$option =  array ("value1" => "labelContent1", "value2" => "abelContent2");
echo $this->Form->input('name', array(
    'type' => 'radio',
    'options' =>  $option, 
    'templates' => ['radioWrapper' => '<div>{{label}}</div>'], 
    "legend" => false));
?>

これは Cake 3.+ でうまくいくようです。

于 2016-06-23T00:30:50.387 に答える