Перейти к содержимому
Русский язык для Invision Community 5

Как выводить данные у связанных записей?

Здравствуйте!

 

Есть проблема с выводом данных из связанных полей.

 

Что есть:

 

1. База данных - "Фильмы", у записей в этой базе есть дополнительное поле "Год выхода" (release_date)

2. База данных - "Актеры" и добавленная в нее запись, где в поле "films" указаны записи из базы данных "Фильмы"

 

Что нужно:

 

На странице базы данных "Актеры" выводит информацию по фильмам, с которым связан этот актер.

 

Пробовал такие варианты:

 

{$record->customFieldDisplayByKey('films')->customFieldDisplayByKey('release_date')}
{$record->fieldValues()['field_95']->fieldValues()['field_93']}

 

И еще кучу других вариаций методом тыка. Своих знаний не хватает. Подскажите конструкцию, как выводить данных из любых полей связанных с записью.

 

Благодарю.

Рекомендованные сообщения

Без доступа к Вашей базе ничего конкретного Вам никто не подскажет. В общем случае нужно получать массив с id записей из таблицы первой базы и делать запрос ко второй.

  • 1 месяц спустя...
  • Автор

Спасибо за подсказку. В итоге изучил PHP, будучи полным нулем и за 4 дня написал работающий код! Изучать с нуля, конечно, сложно, но удовольствие от результата и процесса огромное. Скажите, как упростить/улучшить мой код?

 

 

{{if $record->customFieldDisplayByKey('model')}}
{{$models = explode(",", $record->customFieldDisplayByKey('model','listing'));}}
<li class="ipsDataItem">
<span class="ipsDataItem_generic ipsDataItem_size3"><strong>Подходит</strong></span>
<span class="ipsDataItem_generic">
{{foreach $models as $id => $item}}
<!--Получаем название модели cms_custom_database_4-->
{{$model = \IPS\Db::i()->select( 'field_7', 'cms_custom_database_4', array( 'primary_id_field=?', $item ) )->first();}}
<!--Получаем ID бренда из cms_custom_database_4-->
{{$brand_id = \IPS\Db::i()->select( 'field_25', 'cms_custom_database_4', array( 'primary_id_field=?', $item ) )->first();}}
<!--Получаем название бренда из cms_custom_database_4-->
{{$brand = \IPS\Db::i()->select( 'field_9', 'cms_custom_database_5', array( 'primary_id_field=?', $brand_id ) )->first();}}
{$brand} {$model}<br>
{{endforeach}}
</span>
</li>
{{endif}}

Запросы в циклах - не есть гуд.

 

<!--Получаем название бренда из cms_custom_database_4-->
{{$brand = \IPS\Db::i()->select( 'field_9', 'cms_custom_database_5'

Почему 4 и 5? Где ошибка?

Создайте аккаунт или войдите в него для комментирования

Аккаунт

Навигация

Поиск

Поиск

Настроить push-уведомления браузера

Chrome (Android)
  1. Нажмите на иконку замка рядом с адресной строкой.
  2. Нажмите Права доступа -> Уведомления.
  3. Измените свои настройки.
Chrome (компьютер)
  1. Нажмите на иконку замка в адресной строке.
  2. Выберите Настройки сайта.
  3. Найдите Уведомления и измените свои настройки.