У меня есть эта сводная таблица:
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, но, кроме того, в случае, если более одного объекта отвечают на один и тот же вопрос, я бы хотел перечислить их в течение одного цикла вышеуказанного цикла.
Я был бы счастлив просто напечатать количество объектов, и перечисление их было бы проблематичным.
Спасибо
Если вы хотите сделать Eloquent\Collection
предметы уникальные по свойству, кроме primary key
затем сделайте это:
@foreach ($object->question_byrel->keyBy('question_id') as $rq)
Других решений пока нет …