Флажок 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'
]); ?>