Views + Flag - плодит дубликаты при выводе (distinct не помогает)

Главные вкладки

Аватар пользователя LeeleeKeelee LeeleeKeelee 29 марта 2013 в 9:30

Доброго времени суток. Есть база заявок (выводится при помощи Views), у пользователей есть возможность "застолбить" за собой заявку (реализовано с помощью Flag). Аватар пользователя, застолбившего заявку, выводится в специальной колонке Views. Подскажите, пожалуйста, почему Views делает дубликат заявки, если её застолбили два пользователя? И как это исправить?
Скриншот прикрепил.

ВложениеРазмер
Иконка изображения views_double.jpg34.99 КБ

Комментарии

Аватар пользователя roman-yrv roman-yrv 29 марта 2013 в 10:42

Скажите, а реально ли, чтобы заявка была застолбнена двумя пользователями одновременно ?
Не является ли это логической ошибкой ?

Аватар пользователя LeeleeKeelee LeeleeKeelee 29 марта 2013 в 19:20

roman-yrv wrote:
Скажите, а реально ли, чтобы заявка была застолбнена двумя пользователями одновременно ?
Не является ли это логической ошибкой ?

Да, реально, потому что в сложные задачи выполняются несколькими людьми. Я тоже о таком варианте думал, но нужно, чтобы была возможность застолбить за несколькими...

Аватар пользователя roman-yrv roman-yrv 29 марта 2013 в 22:53

Ну, если Вам нужно выводить заявку и аватар застолбивших её пользователей, то заявка и будет выводиться 2 раза, если два пользователя её застолбили.

Посмотрите на SQL-запрос, который генерирует данный views, там, наверное, так и получается.

А если Вы хотите, чтобы заявка выводилась один раз, то нужно или убрать данные о пользователе из списка выводимой информации, и тогда distinct должен сработать, или даже не знаю ... возможно, в таком случае проще руками SQL-запрос написать, чтобы, к примеру, выводился один из пользователей ...

P.S. А что, если в заявке завести служебное поле, в котором хранить ссылку на первого пользователя (либо на последнего пользователя, если нужно просто вывести какого-либо пользователя), который её застолбил. И его и выводить, если пользователей несколько. Связь "один-к-одному" во таком случае сделать несложно.

Аватар пользователя LeeleeKeelee LeeleeKeelee 30 марта 2013 в 8:38

roman-yrv wrote:

А если Вы хотите, чтобы заявка выводилась один раз, то нужно или убрать данные о пользователе из списка выводимой информации, и тогда distinct должен сработать, или даже не знаю ... возможно, в таком случае проще руками SQL-запрос написать, чтобы, к примеру, выводился один из пользователей ...

P.S. А что, если в заявке завести служебное поле, в котором хранить ссылку на первого пользователя (либо на последнего пользователя, если нужно просто вывести какого-либо пользователя), который её застолбил. И его и выводить, если пользователей несколько. Связь "один-к-одному" во таком случае сделать несложно.


Спасибо за ответ. Но нужно не совсем это. В идеале, нужно добиться, чтобы в списке была только одна строка с заявкой, а в поле, где фото отметивших юзеров, были их фотографии. если одна, то одна, если двое отметили, то две...

Аватар пользователя roman-yrv roman-yrv 30 марта 2013 в 8:48

Наверное, в этом случае нужно воспользоваться каким-либо модулем, который создает поля типа views.
То есть, Вы для каждого заказа фактически вызываете вызываете новый views, который и будет вытаскивать список пользователей.

Вот об этом поле - http://xandeadx.ru/blog/drupal/639

Или, если Вы c SQL и Dripal API дружите, можно задать поле, значение которого можно сформировать произвольно
http://drupal.org/project/views_customfield

То есть, там руками формируете SQL-запрос на выборку пользователей, запускаете его и формируете результаты для вывода.

Аватар пользователя LeeleeKeelee LeeleeKeelee 30 марта 2013 в 9:58

roman-yrv wrote:
Наверное, в этом случае нужно воспользоваться каким-либо модулем, который создает поля типа views.
То есть, Вы для каждого заказа фактически вызываете вызываете новый views, который и будет вытаскивать список пользователей.

Вот об этом поле - http://xandeadx.ru/blog/drupal/639


Большое спасибо за наводку! Сейчас пытаюсь разобраться с этим полем. точнее, с представлением, которое должно отображть аватары. Не могу понять какой выбрать аргумент, чтобы аватары выводились в соответствии с их заявкой. Буду пробовать