Проблема вывода пользователей с сортировкой по полю связанной таблицы

#1 27 марта 2015 в 17:09
На странице список пользователей есть ссылки на наборы пользователей "Новые", "Онлайн", "Рейтинг" и т.д. Хочется добавить свой набор. В БД создана отдельная таблица с двумя полями — userID и points. Нужно сортировать пользователей по points в порядке убывания. Для этого джойним дополнительную таблицу в model.php:
  1.  
  2. $this->select("IFNULL(wc.user_stat, '')", 'points');
  3. $this->joinLeft('user_stat', 'wc', 'wc.id = i.id');
  4.  
Проверил дампом — эти данные в шаблон списка пользователей попадают.
Далее идём в users/frontend.php и добавляем в public function getDatasets() :
  1.  
  2. $datasets['points'] = array(
  3. 'name' => 'points',
  4. 'title' => 'Очки',
  5. 'order' => array('points', 'desc')
  6. );
  7.  
И… ничего не работает… белый экран. По-видимому на стадии фильтрации и сортировки отсутствует нужные данные. Прошу совета!
#2 31 марта 2015 в 01:24
Прошу помочь, сам разобраться не сумел cry
#3 2 апреля 2015 в 13:18

ничего не работает… белый экран.

Antuanett
Включите отладку, и в место белого экрана, будет ошибка, пишите сюда что за ошибка
#4 2 апреля 2015 в 13:58
model.php
  1.  
  2. $this->select("IFNULL(wc.balance, 0)", 'club_balance');
  3. $this->select("IFNULL(wc.id, 0)", 'user_id');
  4. $this->joinLeft('wotmod_player_clubstat', 'wc', 'wc.id = i.id');
  5.  
frontend.php
  1.  
  2. $datasets['club_balance'] = array(
  3. 'name' => 'points',
  4. 'title' => 'Самые богатые',
  5. 'order' => array('club_balance', 'desc')
  6. );
  7.  
ошибка:
  1.  
  2. Ошибка в запросе БД:
  3.  
  4. Unknown column 'i.club_balance' in 'order clause'
  5. SELECT i.*, IFNULL(c.name, '') as city_name, IFNULL(c.id, 0) as city_id, IFNULL(wc.balance, 0) as club_balance, IFNULL(wc.id, 0) as user_id
  6. FROM cms_users i
  7. LEFT JOIN cms_geo_cities as c ON c.id = i.city
  8. LEFT JOIN cms_wotmod_player_clubstat as wc ON wc.id = i.id
  9. ORDER BY i.club_balance desc
  10. LIMIT 0, 15
  11.  
  12. Последние вызовы:
  13.  
  14. get() @ /var/www/system/controllers/users/model.php : 54
  15. getUsers() @ /var/www/system/controllers/users/frontend.php : 197
  16. renderProfilesList()
  17. call_user_func_array() @ /var/www/system/core/action.php : 29
  18. __call() @ /var/www/system/controllers/users/actions/index.php : 35
  19. renderProfilesList() @ /var/www/system/controllers/users/actions/index.php : 35
  20. run()
  21. call_user_func_array() @ /var/www/system/core/controller.php : 276
  22. runExternalAction() @ /var/www/system/core/controller.php : 207
  23. runAction() @ /var/www/system/core/core.php : 616
  24. runController() @ /var/www/index.php : 37
  25.  
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.