使用以下代码解释问题。 $category->update()
结果为true(或$category->save()
),但实际上没有任何反应。
$category = Category::findFirst('id=' . (int)$id);
if ($this->request->isPost()) {
$category->setCategoryId($this->request->getPost('category_id', 'int'));
$category->setLanguageId($this->request->getPost('language_id', 'int'));
$category->setName($this->request->getPost('name', 'striptags'));
$category->setDescription($this->request->getPost('description', 'striptags'));
$category->setSort($this->request->getPost('sort'));
$category->setValid($this->request->getPost('valid'));
if (!$category->update()) {
$this->flash->error($category->getMessages());
} else {
$this->flash->success(
$this->translator->_('Category was updated successfully')
);
}
}
使用phalcon-devtools,使用getter和setter方法以及受保护的成员变量生成模型类。
我做错了什么?
我知道这个问题也被讨论here但遗憾的是我没有足够的观点来发表评论:)
Phalcon Version 1.2.3,MySQL 5.5 + Apache on Debian with PHP5.4.4
答案 0 :(得分:3)
这可能是一个简单的事情,如一个不接受空值的列,并且正在插入空。如果你没有明确告诉Phalcon不要这样做,即使你没有这样做。如果有任何验证,Phalcon将隐式地对字段强制执行非空约束。
通过将其添加到引导程序文件的顶部来禁用非空验证,然后重试:
\Phalcon\Mvc\Model::setup([
'notNullValidations' => false
]);
答案 1 :(得分:1)
验证可能是罪魁祸首?检查验证器
答案 2 :(得分:0)
你检查过php错误日志吗?我发现Phalcon有时并不像我希望的那样冗长......