【发布时间】:2017-12-13 06:01:44
【问题描述】:
以下是 cakephp 文档中不起作用的行。
更改获取策略
您可能已经知道,belongsTo 和 hasOne 关联是在主查找器查询中使用 JOIN 加载的。虽然这提高了查询和获取速度,并允许在检索数据时创建更具表现力的条件,但当您想要将某些子句应用于关联的查找器查询时,这可能会出现问题,例如 order() 或 limit()。
例如,如果您想获取文章的第一条评论作为关联:
$articles->hasOne('FirstComment', [
'className' => 'Comments',
'foreignKey' => 'article_id'
]);
为了正确地从该关联中获取数据,我们需要告诉查询使用选择策略,因为我们希望按特定列排序:
$query = $articles->find()->contain([
'FirstComment' => [
'strategy' => 'select',
'queryBuilder' => function ($q) {
return $q->order(['FirstComment.created' =>'ASC'])->limit(1);
}
]
]);
谢谢
【问题讨论】:
-
"不起作用" 不是正确的问题描述!即使问题对于了解 CakePHP 内部结构的人来说可能很明显,请始终尽可能具体地说明确切会发生什么,以及您希望确切会发生什么而是发生。请不要只是转储 Cookbook 示例,向我们展示您的关联、您的代码、您的数据,并描述您的具体问题,即使您'正在尝试复制食谱示例 - 谢谢!
-
在我的情况下,一篇文章有很多 cmets,现在我需要知道如何获取每篇文章的最新评论
-
这就是您应该在问题中详细说明的内容。 stackoverflow.com/questions/30241975/…
-
我没有得到你可以根据我的需要定制谢谢
标签: cakephp associations cakephp-3.0