Php laravel 4-如何输出关系的不同值
我有一张透视表: 整体观点 id-事件\u id-问题\u id-实体\u id-立场\u值 实体参与事件,并通过参与揭示他们对问题的立场 问题12是“你喜欢蓝色吗?” 问题11是“你喜欢红色吗?” 事件“1”是“请说出你喜欢或不喜欢的颜色” 三条记录的简化案例:Php laravel 4-如何输出关系的不同值,php,laravel,collections,laravel-4,distinct,Php,Laravel,Collections,Laravel 4,Distinct,我有一张透视表: 整体观点 id-事件\u id-问题\u id-实体\u id-立场\u值 实体参与事件,并通过参与揭示他们对问题的立场 问题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 - 10
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
我想做的是:
我想创建一个关系,列出一个事件中回答的所有问题,但我想打印不同的问题,而不重复它们-在这种情况下,问题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')也不起作用
如果有人愿意提供高级建议:在最终版本中,我很乐意列出所有的问题,但另外,如果有多个实体回答同一个问题,我想在上述循环的一个周期内列举它们。
我很乐意只打印实体的数量,列出它们会很麻烦
Thx如果您希望通过除
主键
以外的属性使雄辩\收藏
项唯一,请执行以下操作:
@foreach ($object->question_byrel->keyBy('question_id') as $rq)
再次检查您的代码,因为这不会返回雄辩模型的副本。不,代码不起作用-据我所知,它不能,它不会通知Laravel,我想区分“问题id”。