4

これを機能させるにはどうすればよいですか?

$stuff = ORM::factory('mytable')
    ->with('user')
    ->with('other_stuff')
    ->find_all();

私はすべての関係を設定しており、他のクエリを実行するとすべてが機能しているようです。ただし、上記のクエリでは、テーブルユーザーmytableに結合していません。1 つのmytableに対して多くのユーザーが存在できるためではないかと思います。

join()参照には、ここで使用する必要があると思われるメソッドがありますが、それに関する情報は提供されておらず、ここで検索したものは機能しません。

joinの代わりに使用withしようとすると、テーブルに参加しようとしますが、「結合」情報は含まれず、空の().

ORM DB 関係がすべて正しく設定されていることはわかっているので、少し困惑しています。

4

2 に答える 2

5

Kohana にはまともなドキュメントがありますが、適切な場所を見ていないのは...まあ、あなたの問題です。

ORM::with()ORM で使用するすべてのDatabase_Query_Builderメソッドを自由に使用できますが、1 対 1 (属しており、1 つを持っている) の関係をロードするために使用されます。

$stuff = ORM::factory('mytable')
        ->join('users','LEFT')
        ->on('users.mytable_id','=','mytables.id')
        ->find_all();
于 2011-04-16T08:40:55.133 に答える
1
SELECT * from table1
LEFT JOIN table2
ON table1.id = table2.id
AND table2.flag = 'Y' 
AND table2.siteid = '12'
WHERE table1.siteid = '12'

上記のクエリは、kohanaのORM形式でどのように記述されていますか?以下は正しいですか

$stuff = ORM::factory('table1')
    ->join('table2','LEFT')
    ->on('table1.id','=','table2.id')
    ->on('table2.flag','=','Y')
    ->on('table2.siteid', '=', '12')
    ->where('table1.id', '=', '12')
    ->find_all();
于 2012-04-25T06:05:20.907 に答える