首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Kohana 3 ORM -按案例分组

Kohana 3 ORM -按案例分组
EN

Stack Overflow用户
提问于 2013-04-29 23:19:16
回答 1查看 657关注 0票数 0

我想用ORM查询构建器来实现这个查询:

代码语言:javascript
复制
SELECT * FROM `products`
GROUP BY CASE `products`.`configurable` 
WHEN 'yes' THEN `products`.`id_configuration` 
ELSE `products`.`id` 
END

我知道这是可行的:

代码语言:javascript
复制
$products = DB::query(Database::SELECT, '
    SELECT * FROM `products`
    GROUP BY CASE `products`.`configurable` 
    WHEN 'yes' THEN `products`.`id_configuration` 
    ELSE `products`.`id` 
    END
')->execute();

但是它返回mysql db结果,而我更希望有一个ORM列表,否则我将不得不在循环中实例化所有ORM对象,从而导致性能低下……或者...?

有可能吗?ORM 'group_by‘函数看起来非常有限...

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-04-30 12:28:28

您应该定义您想要的DB结果的类型:

代码语言:javascript
复制
$products = DB::query(Database::SELECT, '
    SELECT * FROM `products`
    GROUP BY CASE `products`.`configurable` 
    WHEN 'yes' THEN `products`.`id_configuration` 
    ELSE `products`.`id` 
    END
')
->as_object('Model_Product') // !!
->execute();

或者,如果你在模型中使用它,你可以调用->as_object(get_class($this))->as_object($this)

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16282337

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档