Хорошо, в CakePHP у меня есть следующий код на мой взгляд add.ctp
:
echo $this->Form->radio('color', array('1' => 'red', '2' => 'green', '3' => 'blue'), array('value' => false));
, что приводит к правильному HTML:
<fieldset>
<legend>Color</legend>
<input type="radio" name="data[Some][color]" id="SomeColor1" value="1" />
<label for="SomeColor1">red</label>
<input type="radio" name="data[Some][color]" id="SomeColor2" value="2" />
<label for="SomeColor2">green</label>
<input type="radio" name="data[Some][color]" id="SomeColor3" value="3" />
<label for="SomeColor3">blue</label>
</fieldset>
Если я отмечу "зеленый", например, debug($this->data);
даст ожидаемый результат:
Array
(
[Some] => Array
(
[color] => 2
)
)
Однако , CakePHP вставляет неверные данные в таблицу:
INSERT INTO `somes` (`color`) VALUES (1)
Есть какая-нибудь подсказка, что здесь происходит? Чего мне не хватает?
EDIT:
- Я использую
$this->Some->save($this->data)
, и тип данных цвета TINYINT(1) UNSIGNED NOT NULL DEFAULT 0
.
- Ради примера я удалил другие данные, но в основном все остальное работает просто отлично, и запись сохраняется.