当我从数据库中检索记录时,将其存储为对象,更新并保存,推进会抛出验证错误,因为它认为我想创建一条新记录而不更新现有记录。这是一个例子:
$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中。但我知道,我试图更新不创建新的。
答案 0 :(得分:0)
我发现了什么问题。推进验证是错误的,并且试图将对象验证为新对象而不是更新对象。我禁用了验证,现在更新正在运行,但没有验证。