【问题标题】:After add some columns to table, ORM can't find those unless I run reload() in Kohana3向表中添加一些列后,ORM 找不到那些,除非我在 Kohana3 中运行 reload()
【发布时间】:2011-06-04 10:02:37
【问题描述】:

向表中添加一些列后,我的模型无法找到这些新列,但可以找到现有列。

例如,假设我在user 表中添加了一个point 列,并且存在一个name 列。

$foo = ORM::factory('user',1);
$foo->name;  // it's ok
$foo->point; // would throw exception:The :property property does not exist in the :class class
$foo->reload();
$foo->point;  // would work

如您所见,如果我在获取新列之前添加 reload(),它会起作用。但我真的不认为这是正确的方法。而且我之前改过schema,没有问题。求一劳永逸的解决办法..

【问题讨论】:

  • 1.您的模型有一个带有旧列列表的 $_column_cache 属性。 2. 可能是第一个模型实例是从会话中加载的?无论如何,您可以转储模型并分析 $_object 属性。
  • 它现在可以正常工作,没有任何变化。看起来像缓存什么的。不管怎样,我不想再打扰这个了..

标签: php orm schema kohana reload


【解决方案1】:

我想出了如何解决这个问题。 删除目录下的所有文件:cache/.kohana/,就是kohana保存数据库schema缓存的地方。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-04-01
    • 2016-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-11
    • 1970-01-01
    相关资源
    最近更新 更多