Основной курс по Joomla
0 Пользователей и 1 Гость просматривают эту тему.
  • 6 Ответов
  • 287 Просмотров
*

ingavr

  • Давно я тут
  • ****
  • 279
  • 0
Добрый вечер дамы и господа!
не сочтите за невежество, но уже везде обыскался - не могу найти причину.

Пытаюсь вывести данные из нескольких таблиц.
Создал свои категории. Под них своя таблица.
Есть список элементов, под них своя таблица, пытаюсь в модели вместо id категории выбрать имя категории.

Вот блок кода php:
Код
protected function getListQuery()
    {
        $db = $this->getDbo();
        $query = $db->getQuery(true);
        $user = JFactory::getUser();
        
        $query->select('a.id, petkinds, state, a.name, description, created, created_by, a.alias');
        $query->from('#__pets_profile AS a');
                      
        $query->select('u.name as created_by');
$query->join('LEFT', '#__users AS u ON u.id = a.created_by');
                
        $query->select('p.name AS type');
$query->join('LEFT', '#__pets_profilekinds AS p ON p.id = a.petkinds');
        
        //print_r ($query);
        //exit();
        
        $orderCol = $db->escape($this->getState('list.ordering', 'id'));
        $orderDir = $db->escape($this->getState('list.direction', 'desc'));
        
        $query->order($orderCol. ' '. $orderDir);
        
        return $query;
    }

Поле id автора благополучно меняется на имя автора,

а вот при попытке заменить id категории (petkinds) на имя категории - блок <tbody> становится пустым!
Где может быть допущена ошибка?
Помогите, пожалуйста!
*

ingavr

  • Давно я тут
  • ****
  • 279
  • 0
Re: вывод данных из нескольких таблиц
« Ответ #1 : 02.11.2016, 01:37:27 »
Для пояснения скажу, что в шаблоне вида, массив Items при включении выборки:
Код
$query->select('p.name AS type');
$query->join('LEFT', '#__pets_profilekinds AS p ON p.id = a.petkinds');

Оказывается пустой.
Когда эти строки закомментировать - всё отображается.
*

ingavr

  • Давно я тут
  • ****
  • 279
  • 0
Re: вывод данных из нескольких таблиц
« Ответ #2 : 02.11.2016, 03:42:33 »
массив Items при включении выборки:
Код
$query->select('p.name AS type');
$query->join('LEFT', '#__pets_profilekinds AS p ON p.id = a.petkinds');

Оказывается пустой.
Когда эти строки закомментировать - всё отображается.

Он оказывается не пустой.
Выдаёт ошибку: Invalid argument supplied for foreach() in C:\OpenServer\domains\...views\profiles\tmpl\default.php on line 66

При этом не важно что у меня стоит в рендере там, где должно показываться имя этой категории. хоть пустым оставляю - всё равно ошибка.  :(
*

Филипп Сорокин

  • Практически профи
  • *******
  • 1781
  • 135
Re: вывод данных из нескольких таблиц
« Ответ #3 : 02.11.2016, 08:28:58 »
Вы неправильно составили запрос. Посмотрите пример в оф. руководстве:
https://docs.joomla.org/Selecting_data_using_JDatabase#Selecting_Records_from_Multiple_Tables
Ставь лайк, если согласен, и делай репост!

  => мои публикации
    => мои работы
      => спектр моих услуг
*

ingavr

  • Давно я тут
  • ****
  • 279
  • 0
Re: вывод данных из нескольких таблиц
« Ответ #4 : 02.11.2016, 16:40:14 »
Вы неправильно составили запрос. Посмотрите пример в оф. руководстве:
https://docs.joomla.org/Selecting_data_using_JDatabase#Selecting_Records_from_Multiple_Tables
Спасибо, по изучаю.
Я, однако, делал по примеру видеоурока, там у него выборка из четырех таблиц и все одинаковым способом (вот таким, как в моём примере) и всё у него работает, а у меня, почему-то нет(
*

SeBun

  • Практически профи
  • *******
  • 3086
  • 187
  • @SeBun48
Re: вывод данных из нескольких таблиц
« Ответ #5 : 02.11.2016, 17:58:11 »
Мало повторять за кем то действия, надо понимать, что пишешь. Филипп дал ссылку, изучайте. От себя добавлю, что лучше для проверки результата использовать не print_r, а var_dump, так нагляднее.
Оказываю услуги по Joomla | Миграция на Joomla 3.x | Администрирование | Разработка
Ник занят
*

ingavr

  • Давно я тут
  • ****
  • 279
  • 0
Re: вывод данных из нескольких таблиц
« Ответ #6 : 02.11.2016, 21:44:52 »
Мало повторять за кем то действия, надо понимать, что пишешь. Филипп дал ссылку, изучайте. От себя добавлю, что лучше для проверки результата использовать не print_r, а var_dump, так нагляднее.

Спасибо за совет.
Но, мне казалось, я всё правильно понимаю: что, за чем и почему. Оказывается не всё.