Phalcon的保存方法无法正常工作

时间:2014-12-14 09:26:43

标签: php phalcon

我正在尝试使用Phalcons save()函数创建或更新记录,具体取决于记录是否已存在于数据库中from here

我正在做以下事情:

$vars = $this->request->getPost();
$code = new Code();
$code->save( $vars, array("code_type", "code", "name") );

当我向控制器发送更新时," id"如果我正在创建记录,则字段已填充主键,而它是空白的(但数组键仍然存在)。

我的理解是ORM应该创建或更新记录,具体取决于主键是否存在。我遇到的问题是它始终创建记录而不是更新。

我也尝试过类似下面的内容,但是当我使用find时反之亦然:

$code = Code::findFirst($vars["id"]);
$code->save( $vars, array("code_type", "code", "name") );

知道我可能做错了吗?我想达到一个点,我有一个控制器用于我的插入/更新操作。

1 个答案:

答案 0 :(得分:1)

第一个示例仅创建新记录并不奇怪,因为您既没有加载现有记录,也没有在要保存的白色字段列表中包含“id”。如下实例化对象应解决问题(假设“id”是整数):

$code = ($id = (int) $vars['id']) ? Code::findFirst($id) : new Code();