【发布时间】:2012-05-09 08:22:43
【问题描述】:
我无法为我的分页器做一个简单的条件。我有一个调查和竞选模型。 Campaigns 在 Campaign 模型中设置了许多调查。
我想选择一个调查,并且分页器应该显示活动链接到,但我不断收到一个未知列 Survey.id - 检查时我看到调查没有加入到活动模型中,仅在 WHERE 子句中.我还发现 hasMany 不会将表加入查询。
我还能怎么做上面的事情?
【问题讨论】:
-
如果营销活动有许多调查,调查有一个营销活动,不是吗?因此,如果您选择一项特定的调查,它将仅与一项活动相关联?那你为什么需要在这里分页?可能有什么我不明白的。也就是说,在某些情况下过滤
Model1.model2_id而不是Model2.id会有所帮助。 -
我拥有的是一个包含广告系列的页面(分页用于此页面)。我想要一个下拉列表,用户可以在其中选择一项调查,然后结果将返回与该调查相关的 1 个活动)。所以分页页面只会有 1 个结果。这只是进入活动的一种快捷方式(如果您知道调查是什么,但不知道它所链接的活动)
-
这不是最优雅的解决方案,但您可以尝试在
joins键中手动添加关系。虽然,我最近发现了这个(我打算做的)这使它更简单(更少的代码)link -
虽然我刚刚注意到您的关系可能设置错误。如果其活动有很多调查,那么调查应该有活动 ID。所以我不知道它为什么要寻找Survey.id。在您的数据库中有 Survey.campaign_id 或 Campaign.survey_id 吗?
-
我有 Survey.campaign_id - 请记住,活动没有 1 个调查,而是多个调查,因此它不会有一个survey_id,这就是问题所在。在 sql 中它本来应该是一个简单的“从广告系列中选择广告系列.id,调查 WHERE 调查.id=VALUE”
标签: cakephp model controller