1

使用以下代码简短地解释了该问题。$category->update()结果为真(或$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')
        );
    }
}

模型类是使用 getter 和 setter 方法生成的,并使用 phalcon-devtools 生成受保护的成员变量。

我究竟做错了什么?

我知道这个问题也在这里讨论过,但不幸的是我没有足够的分数来写评论:)

Phalcon 版本 1.2.3,MySQL 5.5 + Debian 上的 Apache 和 PHP5.4.4

4

3 回答 3

3

它可能就像一个不接受空值的列一样简单,并且正在滑入空值。如果您没有明确告诉 Phalcon 不要这样做,即使您没有任何验证,Phalcon 也会强制执行隐式对字段的非空约束。

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

\Phalcon\Mvc\Model::setup([
    'notNullValidations' => false
]);
于 2013-09-30T03:41:41.873 回答
1

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

于 2013-09-25T07:05:31.130 回答
0

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

于 2013-09-25T09:43:25.173 回答