如何让它发挥作用?
$stuff = ORM::factory('mytable')
->with('user')
->with('other_stuff')
->find_all();
我已经建立了所有关系,当我进行其他查询时,一切似乎都在起作用。但是,在上面的查询中,未将表用户加入 mytable 。我想这可能是因为一个 mytable可以有很多用户。
在参考文献中有一个名为join()
的方法,我认为我可能需要在这里使用,但他们不会在其上提供 任何 信息,我在这里搜索的东西不起作用。
当我尝试使用join
代替with
时,它会尝试加入表格,但它不包含任何“加入”信息,只是给出一个空的()
。
我知道我的ORM数据库关系都设置正确,所以我有点困惑。
答案 0 :(得分:5)
Kohana有很好的文档,没有找对地方......好吧,你的问题。
ORM::with()
用于加载一对一(属于且有一个)关系,但您可以使用所有Database_Query_Builder方法与ORM一起使用:
$stuff = ORM::factory('mytable')
->join('users','LEFT')
->on('users.mytable_id','=','mytables.id')
->find_all();
答案 1 :(得分: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();