我正在使用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。而且我不确定为什么。
答案 0 :(得分:2)
如果您需要PK == $ id的对象,请使用ORM::factory('blogpost', $id)
或new Model_Blogpost($id)
。
加载后检查您的型号。
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;
假设您的桌子被称为博客帖子,当然。我可能错了,如果是的话,你能链接到显示这种模型交互的文档吗?