【发布时间】:2015-01-24 09:51:05
【问题描述】:
我有这个数据透视表: 实体立场 id - event_id - question_id - entity_id - standpoint_value 实体参与事件,并通过参与表明他们对问题的立场。
第 12 题是“你喜欢蓝色吗?”
问题 11 是“你喜欢红色吗?
事件“1”是“请说出你喜欢或不喜欢的颜色”
三个记录的简化案例:
id - event_id - question_id - entity_id - standpoint_value
1 - 1 - 12 - 101 - 1
2 - 1 - 12 - 102 - 0
3 - 1 - 11 - 103 - 1
所以实体 101 和 102 回答问题 12,实体 103 回答问题 11
我想做什么: 我想创建一个关系,列出一个事件中回答的所有问题,但我想打印 DISTINCT 问题,而不重复它们 - 在这种情况下,问题 12 将被打印两次。
我在名为 Event1 的模型中定义了这种关系:
public function question_byrel()
{
return $this->hasMany('Entitystandpoint', 'event_id');
}
但是当我像这样进行 foreach 循环时:
@foreach ($object->question_byrel->unique() as $rq)
....
@endforeach
它会列出所有出现的问题。而且我要 是问题没有。 12 只打印一次。 unique() 不起作用,它至少不会使视图崩溃。 如何告诉 L4 哪一列应该被视为“不同的”? unique('column_name') 也不起作用。
如果有人愿意提供高级建议:在最终版本中,我很乐意列出所有 DISCTINCT 问题,但此外,如果有多个实体回答同一个问题,我'想在上述循环的一个周期内枚举它们。 我很乐意打印实体的数量,列出它们会很麻烦。
谢谢
【问题讨论】:
-
再次检查您的代码,因为这不会返回 Eloquent 模型的重复项。
-
不,代码不工作 - 它不能,就我理解的代码而言,它没有通知 Laravel,我想让“question_id”与众不同。
标签: php laravel collections laravel-4 distinct