Флажок CakePHP не установлен с помощью помощника по формам

Это процесс, который я использовал, чтобы попытаться использовать 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); 
?>

1 ответ

Решение

Ладно, глупо, что я не пробовал это раньше, но для тех, у кого есть та же проблема и дыра в голубях, это требует, чтобы вы не использовали логические значения, должно быть 'true' и 'false'.

Решение, которое работает

 <?php echo $this->Form->checkbox('value', [
        'checked' => ($this->data[ $alias ]) ? 'true' : 'false'
    ]); ?>
Другие вопросы по тегам