CakePHP复选框未使用表单助手进行检查

时间:2015-12-22 00:19:30

标签: php cakephp cakephp-2.0 cakephp-2.6

这是我过去尝试使用CakePHP Form Helper的过程。这些例子是我自己和我发现的混合,绝对不起作用。每个示例都运行相同的数据,这些数据已设置并应生成一个选中的复选框,但使用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); 
?>

1 个答案:

答案 0 :(得分:0)

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

有效的解决方案

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