1

我是 CakePHP 的新手,现在我正在处理复选框,我使用了以下语句,但它在标签之后给出了复选框,它也打印了字段。我的要求是它不打印字段名称,并且标签应该在检查后显示盒子。请帮助我,在此先感谢

<?php echo $form->input('Model.name', array('multiple' => 'checkbox', 'options' => 
$options, 'selected' => $selected));?>
4

4 回答 4

13

首先,确保您的值是boolean 或 tinyint。否则,您将永远不会得到复选框。

然后,像这样构建:

echo $this->Form->input('Model.field', array(
    'type' => 'select',
    'multiple' => 'checkbox',
    'options' => array(
            'Value 1' => 'Label 1',
            'Value 2' => 'Label 2'
    )
));
于 2012-12-19T08:13:19.737 回答
0

要绘制复选框,您必须首先正确配置 DB 中的表。在 DB 中的字段上设置这些选项:

  1. 字段类型 = Tinyint
  2. 长度/值 = 1
  3. 设置默认值 = 0

最后是你的观点:

echo $this->Form->input('checkbox_field');

如果没有,100% 将起作用,然后为您的字段设置默认值:

echo $this->Form->input('checkbox_field', array('type'=>'checkbox'));
于 2013-10-28T15:29:59.453 回答
0

我的解决方案是根据 v.2.0

<?php
echo $this->Form->input('field_name', array(
    'label' => 'Some label',
    'selected' => $selected
    /*maybe some other options*/
));
?>

如果您在上面指定了模型名称,则在创建表单时,您不需要使用模型名称。如果字段是布尔值,您会自动将控件作为复选框。此外,您可以在选项数组中指定它,例如

'type'=>'checkbox'

祝你好运!

于 2012-12-19T08:22:40.627 回答
0

CakePHP 3.0

$this->Form->input('id', ['type'=>'select', 'multiple' => 'checkbox', 'options'=>$array]);
于 2016-02-09T18:24:23.810 回答