编程语言
首页 > 编程语言> > php – Kohana 3 ORM:高级查询,效率

php – Kohana 3 ORM:高级查询,效率

作者:互联网

所以我们都知道Kohana 3的文档绝对是可怕的.那么如何构建以下查询,我有“玩家”和“龙”模型?

SELECT * FROM `dragons` JOIN `players` ON (`dragons`.`player_id` = `players`.`player_id`) WHERE `uid` IN (1,2,3) ORDER BY `dragons`.`id` ASC

我可以使用ORM :: factory(‘dragon’) – > join(“players”) – > on(“dragons.player_id”,“=”,“players.player_id”)来到连接部分,但是我不能做in子句.在Kohana 3的ORM中没有功能.我尝试了where函数,但它在第三个参数周围加上引号,所以我的ID列表变成了一个字符串,查询变得无效.那我该怎么办?我无法弄清楚如何将自定义的SQL位添加到我的ORM加载查询中.同样,因为文档不存在.

我现在能想到的唯一方法就是加载所有合适的玩家,循环播放它们并获取它们的龙.但这似乎真的很愚蠢 – 比必要的查询更多.我以前觉得这样,使用ORM会在查询结束时使事情变得非常低效,以便使代码更容易编码.这是真的?

解决方法:

ORM可以产生一些不太理想的查询 – 但它也可以加快开发时间并为您提供抽象(有些人认为他们不应该再手工编写SQL).

大多数时候我更喜欢复杂的Web应用程序中的SQL.

然而,在说这个,你想要的是使用Kohana 3的ORM.

The Pixel Developer起.

where('field', 'IN', range(1, 3));

这具有不具有循环的优点.

标签:php,orm,kohana,kohana-3
来源: https://codeday.me/bug/20190606/1189394.html