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

看起来您无法使用表单助手实现这一目标。单选选项没有包含在任何东西中。见代码

您可以添加'separator' => '<br/>'到 Form->input 选项,以在其自己的行中显示每个选项。

或自己实施。

于 2012-08-09T14:58:13.563 回答
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 回答
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 回答