Laravel 4 — как вывести различные значения отношения

У меня есть эта сводная таблица:
Entitystandpoints
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

Что я хочу сделать:
Я хочу создать отношение, которое бы перечисляло все вопросы, на которые даны ответы в событии, но я хочу напечатать ОТЛИЧНЫЕ вопросы, не повторяя их — в этом случае вопрос 12 будет напечатан дважды.

Я определил это отношение в моей модели с именем Event1:

public function question_byrel()
{
return $this->hasMany('Entitystandpoint', 'event_id');
}

но когда я делаю для каждого цикл как это:

@foreach ($object->question_byrel->unique() as $rq)
....
@endforeach

это перечислило бы все случаи вопроса. И я хочу
это вопрос нет. 12 для печати только один раз.
Функция unique () не работает, по крайней мере, она не приведет к сбою представления.
Как сказать L4, какой столбец следует рассматривать как «отдельный»?
уникальный (‘column_name’) тоже не работает.

Если кто-то хочет дать расширенный совет: в окончательной версии я был бы рад перечислить все вопросы DISCTINCT, но, кроме того, в случае, если более одного объекта отвечают на один и тот же вопрос, я бы хотел перечислить их в течение одного цикла вышеуказанного цикла.
Я был бы счастлив просто напечатать количество объектов, и перечисление их было бы проблематичным.

Спасибо

1

Решение

Если вы хотите сделать Eloquent\Collection предметы уникальные по свойству, кроме primary keyзатем сделайте это:

@foreach ($object->question_byrel->keyBy('question_id') as $rq)
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]