Kohana 3.2 ORM不包含型号信息

时间:2011-11-17 01:45:29

标签: kohana-3 kohana-orm

我正在使用Kohana 3.2并在我的控制器中包含以下代码。

  $Blog_Post = new Model_Blogpost();

  $Blog_Post->where('id', '=', 1);
  $Blog_Post->find();

  $content = $Blog_Post->content;

我目前在我的数据库中有3条记录,ID为1,2和3。

$ Blog_Post->内容或任何其他字段返回null。而且我不确定为什么。

2 个答案:

答案 0 :(得分:2)

  1. 如果您需要PK == $ id的对象,请使用ORM::factory('blogpost', $id)new Model_Blogpost($id)

  2. 加载后检查您的型号。

  3.   if $Blog_Post->loaded()
      {
           // it works!
      }
      else
      {
           // record not found
      }
    

    如果找不到记录,您可以使用$Blog_Post->last_query()

    查看上次数据库查询

    <强> UPD 即可。来自评论。您的模型不适用于此修改。请注意,存储在$_object属性和$Blog_Post->content中的ORM数据只是$Blog_Post->_object['content']通过__get()方法的快捷方式。当然,如果您定义公共$content属性,$Blog_Post->content将返回NULL值而不是使用DB数据。

    没有理由将模型字段定义为属性。如果您需要IDE提示,请使用PHPDOC。

答案 1 :(得分:0)

在我工作的公司,我们正在考虑最近升级到3.2。但是,在我们的评估中,我不记得看到ORM处理方法的差异。 你的上面看起来应该是这样的:

  $Blog_Post = ORM::factory('blogpost')->where('id', '=', 1)->find();

  $content = $Blog_Post->content;

假设您的桌子被称为博客帖子,当然。我可能错了,如果是的话,你能链接到显示这种模型交互的文档吗?