CakePHP无法插入带有外键错误的记录

时间:2013-05-19 22:20:18

标签: cakephp foreign-keys

尝试在表中插入记录时出现以下错误:

错误:SQLSTATE [23000]:完整性约束违规:1452无法添加或更新子行:外键约束失败(invoicequotes,CONSTRAINT quotes_ibfk_1 FOREIGN KEY( contacts_id)参考Contactsid))

我在两个表的“联系人”和“引号”之间建立了关系。 'quotes'有一个外键设置contacts_id。

我的引号控制器中的Add方法如下所示:

public function add() {
        $this->log('Quote Controller --> Add Method...1');
        $this->log($this->request->data);

        if ($this->request->is('post')) {                   
            $this->Quote->create(); // This line writes the details to the database.
            if ($this->Quote->save($this->request->data)) {             
                $this->Session->setFlash('Your quote has been saved.');
                $this->redirect(array('action' => 'index'));
            } else {                
                $this->Session->setFlash('Unable to add your quote.');
            }            
        }
    }

任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:0)

尝试保存数据时没有正确的外键时会发生错误。

我猜这个$ this-> request->数据中的“contacts_id”值为空/空。您可能想要添加debug($ this-> request-> data);在$ this-> Quote-> create();

之后

而且似乎你没有遵循CakePHP的惯例。您的contacts_id字段应为contact_id。这可能有助于解决问题。