推进更新表现为创建

时间:2015-06-01 20:30:04

标签: php orm frameworks propel

当我从数据库中检索记录时,将其存储为对象,更新并保存,推进会抛出验证错误,因为它认为我想创建一条新记录而不更新现有记录。这是一个例子:

    $filter = FiltersQuery::create()->findOneByName("test update DS 2");
 // update it's a field
           $filter->someField("value");
  if ($filter->validate()) {
            $filter->save();
            echo "SUCCESS";
        } else {
            foreach ($filter->getValidationFailures() as $failure) {
                $error_messages .= $failure->getInvalidValue() . " " . $failure->getPropertyPath() . ": " . $failure->getMessage();
            }
            echo $error_messages;
        }

我收到验证错误,告诉我我的对象名已经存在于db中。但我知道,我试图更新不创建新的。

1 个答案:

答案 0 :(得分:0)

我发现了什么问题。推进验证是错误的,并且试图将对象验证为新对象而不是更新对象。我禁用了验证,现在更新正在运行,但没有验证。