Доброго времени суток. Есть база заявок (выводится при помощи Views), у пользователей есть возможность "застолбить" за собой заявку (реализовано с помощью Flag). Аватар пользователя, застолбившего заявку, выводится в специальной колонке Views. Подскажите, пожалуйста, почему Views делает дубликат заявки, если её застолбили два пользователя? И как это исправить?
Скриншот прикрепил.
Вложение | Размер |
---|---|
![]() | 34.99 КБ |
Комментарии
Скажите, а реально ли, чтобы заявка была застолбнена двумя пользователями одновременно ?
Не является ли это логической ошибкой ?
Да, реально, потому что в сложные задачи выполняются несколькими людьми. Я тоже о таком варианте думал, но нужно, чтобы была возможность застолбить за несколькими...
Ну, если Вам нужно выводить заявку и аватар застолбивших её пользователей, то заявка и будет выводиться 2 раза, если два пользователя её застолбили.
Посмотрите на SQL-запрос, который генерирует данный views, там, наверное, так и получается.
А если Вы хотите, чтобы заявка выводилась один раз, то нужно или убрать данные о пользователе из списка выводимой информации, и тогда distinct должен сработать, или даже не знаю ... возможно, в таком случае проще руками SQL-запрос написать, чтобы, к примеру, выводился один из пользователей ...
P.S. А что, если в заявке завести служебное поле, в котором хранить ссылку на первого пользователя (либо на последнего пользователя, если нужно просто вывести какого-либо пользователя), который её застолбил. И его и выводить, если пользователей несколько. Связь "один-к-одному" во таком случае сделать несложно.
Спасибо за ответ. Но нужно не совсем это. В идеале, нужно добиться, чтобы в списке была только одна строка с заявкой, а в поле, где фото отметивших юзеров, были их фотографии. если одна, то одна, если двое отметили, то две...
Наверное, в этом случае нужно воспользоваться каким-либо модулем, который создает поля типа views.
То есть, Вы для каждого заказа фактически вызываете вызываете новый views, который и будет вытаскивать список пользователей.
Вот об этом поле - http://xandeadx.ru/blog/drupal/639
Или, если Вы c SQL и Dripal API дружите, можно задать поле, значение которого можно сформировать произвольно
http://drupal.org/project/views_customfield
То есть, там руками формируете SQL-запрос на выборку пользователей, запускаете его и формируете результаты для вывода.
Большое спасибо за наводку! Сейчас пытаюсь разобраться с этим полем. точнее, с представлением, которое должно отображть аватары. Не могу понять какой выбрать аргумент, чтобы аватары выводились в соответствии с их заявкой. Буду пробовать
Как решил проблему с Аватаром?