【发布时间】:2014-02-17 19:57:09
【问题描述】:
在现有的帖子(下面的链接)中,我已经知道如何将一行插入到具有 Microsoft SQL Server 的一个标识列的表中。
Inserting rows into a table with one IDENTITY column only
现在我想使用 CakePHP 来做同样的事情。但是,当我尝试以下操作时,记录将不会被保存。
$this -> MyModel -> create();
if ($this -> MyModel -> save()) {
$this -> log('Record is saved', 'debug');
} else {
// Always run the following
$this -> log('Record is not saved', 'debug');
}
将这样的记录保存到表中的 CakePHP 方法是什么?
MyModel 的表架构如下:
CREATE TABLE [dbo].[my_models] (
[id] INT NOT NULL PRIMARY KEY IDENTITY
)
【问题讨论】:
-
这似乎是在 CakePHP 中保存的正确方法,虽然,我看不出你在保存什么。您没有将任何内容传递到您的保存方法/操作中,例如
$this->MyModel->save($this->request->data);。也就是说,数据是否以这种方式传递给模型。 -
MyModel 的架构是什么?这取决于该架构。
-
@AKKA-Web 谢谢。实际上,唯一要保存的数据是身份列的值,我希望它由数据库自动分配。您可以在我上面编辑的帖子中查看上面的表架构。
-
@Anubhav 感谢您的提醒。我在上面编辑的帖子中包含了架构。
-
将 [id] 列的属性更改为 [id] INT NOT NULL PRIMARY KEY UNIQUE AUTO_INCREMENT,您的代码是正确的。
标签: sql sql-server tsql cakephp cakephp-2.4