Phalcon更新模型不起作用

时间:2013-09-25 05:31:36

标签: mysql database model phalcon

使用以下代码解释问题。 $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

3 个答案:

答案 0 :(得分:3)

这可能是一个简单的事情,如一个不接受空值的列,并且正在插入空。如果你没有明确告诉Phalcon不要这样做,即使你没有这样做。如果有任何验证,Phalcon将隐式地对字段强制执行非空约束。

通过将其添加到引导程序文件的顶部来禁用非空验证,然后重试:

\Phalcon\Mvc\Model::setup([
    'notNullValidations' => false
]);

答案 1 :(得分:1)

验证可能是罪魁祸首?检查验证器

答案 2 :(得分:0)

你检查过php错误日志吗?我发现Phalcon有时并不像我希望的那样冗长......