我将我的申请从Koahana 3.0.1升级到Kohana 3.3。它在Koahana 3.0.1中正常工作。但是,在Kohana 3.3中,我遇到了未知的列错误。下面是我在商业模式中使用的查询。
$biz = $this->where('business.id','IN',$arr)
->join('users','LEFT')
->select(array('users.id','u'))
->on('users.business_id','=','business.id')
->find_all();
表名是企业和用户。该模型定义为
class Model_Business extends ORM
错误说 -
Database_Exception [1054]:'where子句'中的未知列'businesses.id'
我可以解决这个问题(通过上面的更新)但是,现在我得到的新错误是 - “无法在加载的对象上调用方法find()”。
看起来我们不能在模型本身中使用find_all()。在我当前的项目中,我们从模型中返回所有查询的结果。这意味着,升级将需要更改几乎所有代码。有没有解决方法呢?
答案 0 :(得分:0)
您是否尝试过使用business.id?
答案 1 :(得分:0)
自Kohana 3.1以来,ORM字段始终返回别名。如果它是$_has_many
,则为复数,如果它是$_has_one
或$_belongs_to
,则它是单数。如果要确保型号名称,请将$_object_name
设置为所需的值