1

(已编辑)

在我http://host/MyCake/index.php/table/add的表单中,有 10 个输入(字段),提交时,我有

Error: SQLSTATE[23502]: Not null violation: 7 
    ERROR: null value in column "revista_id" violates not-null constraint
SQL Query: 
    INSERT INTO "fasciculos" ("created", "modified", "user_id") VALUES ('now()', 'now()', 1)

好吧,关于“非空违规”(字段revista_id)我尝试使用ALTER COLUMN revista_id DROP NOT NULL(删除约束)更改 SQL,并且更改没问题,它运行了!但是,问题是: * SQL INSERT 中的其他 10 个字段在哪里?!!

是的,当我更改时,提交的数据记录是空的,所有10个字段都是NULL。


我正在使用 PostgreSQL 9.X。

我还检查了 FascculoController 上的 var_dump 是否有发布的数据,是的,它就在那里,

public function add() {
    if ($this->request->is('post')) {
        $this->Fasciculo->create();
        var_dump($this->request->data); // showing below 
        if ($this->Fasciculo->save($this->request->data)) // bug here!
                    ...
             }...
    ...}

vardump 有所有 POST 数据,

  array(1) {  
     ["Fasciculos"]=>array(11) {  
         ["other_id"]=> string(3) "540" 
         //... all data here ...
     }
  }
4

1 回答 1

0

TABLE是 MySQL/PostgreSQL 中的保留关键字,并且作为保留关键字,我认为数据库可能会被INSERT INTO table ...您的 SQL 部分混淆。

这里也可能发生其他事情,但尝试重命名Table模型和控制器可能是个好主意。 (并确保在对模型进行重大更改时清除 CakePHP 缓存文件等)

参见:MySQL 保留关键字PostgreSQL 保留关键字

于 2013-03-20T17:23:50.493 回答