0

Yii 1.1.12: 当我选择用户模型的一个实例时,我得到某些属性/列的默认值。这发生在我最近(手动)添加到数据库的列中:

$user->locale    // returns null (= default value)

如果我在数据库中设置一个新的、不同的默认值(通过 phpMyAdmin),我将收到这个新的默认值。

该表的其他列做得很好:

$user->email     // returns the correct value

如果我运行 SQL 查询,我将收到正确的值:

SELECT locale FROM tbl_users WHERE tbl_users.id = :userID LIMIT 1

由此我推断数据库很好。问题一定出在 Active Records 实现中。

我希望 Yii 的神奇方法只是找到每个数据库列并将它们作为(虚拟)属性添加到模型中。这似乎正在发生,但不知何故插入了数据库列的默认值。

我究竟做错了什么?

解决方案:正如 Sam 建议的那样,删除defaultScope()就可以了。显然,AR 属性必须列在defaultScope()中才能被识别。或者,可以完全删除defaultScope() 。

4

1 回答 1

1

Have you cleaned up Yii cache after adding deafault values to MySQL?

于 2012-11-26T18:21:51.750 回答