0
我有一个用户,消息和评论。Kohana 3.1 ORM:加入has_many
用户ID user_id的
消息ID user_ID的
评论ID MESSAGE_ID
我可以用得到消息的用户数据()。
$model = ORM::factory('message');
$messages = $model
->with('user')
->find_all();
('comment')不起作用。我猜是因为它是为一对一关系创建的,而我有has_many注释消息。
如何获得评论数据到$消息?如下所示:['message_id'] ['comment_id'] [DATA]?
biakaveron,谢谢你为你解答!我想我还不够清楚。我对这些消息有评论,并希望让它们与消息相同,即[message_id] => array([message_text]),array([comment])。为了迭代他们在一个foreach而不是两个。 – Fenec 2011-06-10 20:17:41
你可以用'join'来做到这一点,但是原因是什么?国际海事组织,少数小型数据库请求比一个大型缓存更容易。添加新消息 - 你必须刷新整个缓存数据,而不是只为新消息添加缓存 – biakaveron 2011-06-11 19:17:20
@biakaveron有一个类似的问题,对于我的(我承担最多的)目的,当迭代消息对象时获得的小DB请求并且执行'$ msg-> comments-> find_all()'是不可缓存的,因为它们带有消息ID,并且有成千上万个。这样做比单一'加入'查询要慢得多,除非你想缓存整个数据集所有的RAM /磁盘,否则结果小的查询是没有用的 - 这对MySQL来说比Kohana好得多。 – Guss 2017-04-30 09:32:12