Я использую Drupal Views 2, и мне нужно получить минимальные значения из полей в пользовательской таблице. Запрос для этого был бы простым, если бы я писал его вручную - что-то вроде "SELECT foo, min(bar) FROM table GROUP BY foo". Но как мне это сделать с помощью представлений? Я уже определил таблицу в файле views.info, поэтому нет проблем с получением представлений для просмотра таблицы. Это часть запроса Min(), которую я просто не понимаю.
Следующей моей остановкой будет документация по Views API, но если кто-то может просто предоставить схему того, как это сделать быстро, я был бы очень признателен.
Вопрос
Как получить Min() или Max() в drupal с помощью представлений?
Ответы
Ответ 1 · рейтинг 1 · mpaler
Новый ответ на старый вопрос, но что-то вроде этого будет работать. Вам нужно создать обработчик настраиваемого поля, а затем обернуть поле следующим образом:
class views_handler_custom_field extends views_handler_field {
function query() {
$this->ensure_my_table();
$this->field_alias = $this->query->add_field("MAX({$this->table_alias}", "{$this->real_field})",$this->table_alias . "_" . $this->real_field);
}
}
Ответ 2 · рейтинг 1 · Viljami Salmi
- Используйте агрегацию из расширенной конфигурации представлений. После того, как это установлено, вы можете выбрать max, min или любой другой селектор для полей.
Проверьте свои результаты, но они должны работать хорошо
- В качестве альтернативы в некоторых случаях вы можете отсортировать данные по возрастанию или по убыванию, а затем просто выбрать один из них для отображения в представлении. Может быть проблематично при отображении нескольких полей или около того.
После тестирования первый кажется быстрее, по крайней мере, в небольших масштабах.
Ответ 3 · Nikit
Можно рассмотреть модули groupby и views_calc, но я предполагаю, что они для вас неприемлемы.
Кроме того, это можно сделать с помощью настраиваемого модуля.
Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.
Похожие материалы
- Как зашифровать пароль для друпал 7
- Поле cck в drupal 6: есть ли простой способ дублировать поле cck?
- Сделать ссылку на последнюю посещенную страницу на текущем веб-сайте?
- Как в Drupal показывать только заполненные вкладки меню?
- DRUPAL: просмотры, открытый фильтр: как отменить выбор всех элементов по умолчанию
- Поиск информации о полях в представлениях Drupal