Tes*_*rex 4 php orm kohana kohana-3
所以我们都知道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
Run Code Online (Sandbox Code Playgroud)
我可以ORM::factory('dragon')->join("players")->on("dragons.player_id", "=", "players.player_id")用来进入连接部分,但我不能做这个in条款.inKohana 3的ORM 没有功能.我尝试了这个where函数,但它在第三个参数周围加上引号,所以我的ID列表变成了一个字符串,查询变得无效.那我该怎么办?我无法弄清楚如何将自定义的SQL位添加到我的ORM加载查询中.同样,因为文档不存在.
我现在能想到的唯一方法就是加载所有合适的玩家,循环播放它们并获取它们的龙.但这看起来真的很愚蠢 - 比必要的查询更多.我以前觉得这样,使用ORM会在查询结束时使事情变得非常低效,以便使代码更容易编码.这是真的?
ORM可以产生一些不太理想的查询 - 但它也可以加快开发时间并为您提供抽象(有些人认为他们不应该再手工编写SQL).
大多数时候我更喜欢复杂的Web应用程序中的SQL.
然而,在说这个,你想要的是使用Kohana 3的ORM.
where('field', 'IN', range(1, 3));
Run Code Online (Sandbox Code Playgroud)
这具有不具有循环的优点.:-)
| 归档时间: |
|
| 查看次数: |
2166 次 |
| 最近记录: |