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

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector