0

我将我的应用程序从 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() 。在我当前的项目中,我们从模型中返回所有查询的结果。这意味着,升级将需要更改几乎所有代码。有什么解决方法吗?

4

2 回答 2

0

从 Kohana 3.1 开始,ORM 字段总是返回别名。如果是 a $_has_many,它是复数,如果它是 a $_has_oneor $_belongs_to,它是单数。如果要确保模型名称,请设置$_object_name为所需的值

于 2013-01-23T23:10:18.307 回答
0

你试过businesss.id吗?

于 2013-01-18T10:17:44.440 回答