1

这是我用来尝试使用 CakePHP Form Helper 的过程。这些例子是我自己的和我发现的,绝对行不通的。每个示例都运行相同的数据,该数据已设置并且应该生成一个选中的复选框,但是使用表单助手它肯定会像我期望的那样工作。

这个作品

这确实有效,但我想使用 CakePHP 表单助手

<input type="checkbox" name="value" <?php if(($this->data[ $alias ])){echo "checked";}?>>

但这不起作用

<?php 
echo $this->Form->checkbox('value', [
    'checked' => ($this->data[ $alias ]) ? true : false
]); 
?>

不工作

显然这对某些人有用,因为我发现这是许多人的解决方案,但它绝对不会选中复选框。

<?php 
$checked = if($this->data['alias']) ? true : false;
echo $this->Form->checkbox('value', ['checked' => $checked]); 
?>

有用吗

无论出于何种原因,这确实有效,但不是很有用,所以我在下面的示例中做了下一个最好的事情。

<?php 
echo $this->Form->checkbox('value', ['checked']); 
?>

但是这不起作用???

尽管上面的示例确实有效,但这并不...

<?php 
$options = [];

if($this->data[ $alias ]) {
    array_push($options, 'checked');
    // $options = ['checked']; // this didn't work either
}

echo $this->Form->checkbox('value', $options); 
?>
4

1 回答 1

0

好吧,我之前没有尝试过这很愚蠢,但对于那些有同样问题和鸽子洞的人来说,这要求你不要使用布尔值,必须是“真”和“假”。

有效的解决方案

 <?php echo $this->Form->checkbox('value', [
        'checked' => ($this->data[ $alias ]) ? 'true' : 'false'
    ]); ?>
于 2015-12-22T00:31:25.670 回答