在Yii中使用with()
运算符时,如何从关系表中仅选择不同的记录?
我得到了我的模特(记录):
$probe = Probes::model()->with(array
(
'user',
'results',
'results.answer',
'survey',
'survey.questions',
'survey.questions.question',
'survey.questions.question.answers',
'manager'
))->findByPk($id);
我想确保survey.questions
关系仅返回不同的记录。但看起来,我似乎没有办法实现这一目标(或者我是盲人/没有受过足够的教育)。
将关系表名称/别名指定为数组时:
'results.question'=>array('alias'=>'results_question'),
the distinct
key is not among those, that can be used in such array (as modifier).
我尝试了将select
从默认*
更改为DISTINCT *
的非常丑陋,坎坷的方式:
'survey.questions'=>array('select'=>'distinct'),
但这(当然?)失败了:
Active record "SurveysQuestions" is trying to select an invalid column "distinct". Note, the column must exist in the table or be an expression with alias.
如果可以这样做(使用with()
),我怎样才能实现这一点(看起来如此明显和简单)?如果没有,那么 - 请,建议如何在关系表中以任何方式获取不同的记录(除了使用foreach
手动过滤结果,我现在正在做什么,以及什么是丑陋的)。