0

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

错误:SQLSTATE[23000]:完整性约束违规:1452 无法添加或更新子行:外键约束失败(invoice. quotes, CONSTRAINT quotes_ibfk_1FOREIGN KEY ( contacts_id) REFERENCES Contacts( id))

我在两个表“联系人”和“报价”之间建立了关系。'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.');
            }            
        }
    }

任何帮助表示赞赏。

4

1 回答 1

0

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

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

而且您似乎没有遵循 CakePHP 的约定。您的contacts_id 字段应该是contact_id。这可能有助于解决问题。

于 2013-05-20T01:49:34.347 回答