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();

テーブル名は business と users です。モデルは次のように定義されます。

class Model_Business extends ORM  

エラーは言う -

Database_Exception [1054]: 'where 句' の列 'businesses.id' が不明です

私はこれを(上記のように更新することで)修正できましたが、今、私が得た新しいエラーは「ロードされたオブジェクトでメソッドfind()を呼び出すことはできません」です。

モデル自体で find_all() を使用できないようです。私の現在のプロジェクトでは、すべてのクエリのモデルから結果を返します。つまり、アップグレードではほとんどすべてのコードを変更する必要があります。これに対する回避策はありますか?

4

2 に答える 2

0

business.id で試してみましたか?

于 2013-01-18T10:17:44.440 に答える
0

Kohana 3.1 以降、ORM フィールドは常にエイリアス名を返します。の場合は$_has_many複数形、$_has_oneまたは$_belongs_toの場合は単数形です。モデル名を確実にしたい場合は$_object_name、任意の値に設定してください

于 2013-01-23T23:10:18.307 に答える