我的add.ctp表单正在返回“错误:SQLSTATE [HY000]:常规错误:1364字段'标题'没有默认值”。我不知道为什么,一切似乎都写得正确。我输入了标题,但没有将其保存到数据库中。
AlbumsController.php
class AlbumsController extends AppController {
public function add() {
if($this->request->is('post')) {
$this->Album->create();
$this->Album->save('$this->request->data');
}
}
}
add.ctp
<?php
echo $this->Form->create('Album', array('type' => 'file'));
echo "<br>";
echo $this->Form->input('created', array('label' => '', 'separator' => ' ', 'timeFormat' => '24'));
echo "<br>";
echo $this->Form->input('title', array('label' => 'Naslov albuma<br>'));
echo "<br><br>";
echo $this->Form->end('Create album');
?>
答案 0 :(得分:3)
您需要更改此行:
$this->Album->save('$this->request->data');
并删除单引号,您不需要它:
$this->Album->save($this->request->data);
然而 - 并作为旁注 - ,要从mysql中为标题字段设置默认的NULL值,您可以按如下方式更新表结构,使标题字段接受空值:
ALTER TABLE `tableName` CHANGE `title` `title` varchar(200) NULL DEFAULT NULL;