Загруженная нода ложит сайт в twig

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

Аватар пользователя Кришпер Кришпер 18 февраля 2018 в 0:02

Тема у сайта gavias_pickor
Гружу ноду нормально

<?php$node = \Drupal\node\Entity\Node::load(114);
$variables['arr1'] = $node  ; 
?>

А в представлении на выводе

<?php{{ dump( arr1 )  }}
?>

Сайт просто ложится и даже ошибку не показывает.

Вообще итоговая цель скинуть картинку ноды, но пихая код файла в представление

<?php array(1) { [0]=> array(5) { ["target_id"]=> string(3"208" ["alt"]=> string(1"1" ["title"]=> string(0"" ["width"]=> string(4"1170" ["height"]=> string(3"658" } }?>

На выводе ничего нет
<?php{{ file_url(arr1.entity.fileuri) }}?>

Однако куски ноды выводит
<?php$variables['arr1'] = $node->get('field_tovar_image')->getValue();?>

И вообще надо бы под стилем картинку рендерить.

Комментарии

Аватар пользователя gun_dose gun_dose 18 февраля 2018 в 0:11

В восьмёрке объекты контентных сущностей ни через devel, ни через dump не посмотришь. Надо ставить xdebug - без него никак вообще. Суть в том, что объект той же ноды - довольно сложный по структуре, и помимо собственно полей, в объект могут быть загружены сервисы (которые тоже объекты со сложной структурой) и ещё много чего. И даже если сервер справляется с выдачей такой страницы, то даже на мощном компе может тупо зависнуть браузер.

Аватар пользователя Кришпер Кришпер 18 февраля 2018 в 0:18

Попробывал вариант 1 и 2, оба формируют таки урл типа http://ufarc.ru.host1655264.serv69.hostland.pro/sites/default/files/styl...
но оно не рабочее

<?php            $hero_image $node->get('field_tovar_image')->getValue();
                    
                    if (!empty(
$hero_image)) {
                      
$variables['arr1'] = \Drupal\file\Entity\File::load($hero_image[0]['target_id']);
                      
/*1*/ //$variables['arr1']  = Drupal\image\Entity\ImageStyle::load('270x145')->buildUrl($entity->uri['x-default'] );
                      
                       /*2*/
                      
$style = \Drupal::entityTypeManager()->getStorage('image_style')->load('270x145');
                      
$variables['arr1'] = $style->buildUrl($entity->uri['x-default']);
                    }
?>
Аватар пользователя gun_dose gun_dose 18 февраля 2018 в 0:31

пишешь в шаблон {{ breakpoint() }} и иксдебаг сам остановится в этом месте. Естественно, сам иксдебаг должен быть установлен, включен и настроен.

Аватар пользователя Кришпер Кришпер 18 февраля 2018 в 0:36

Ясно, спасибо.

И, если чё, пишу как получить картинку под стилем.

<?php$hero_image = $node->get('field_tovar_image')->getValue();
                    
                    if (!empty($hero_image)) {
                        $uri = \Drupal\file\Entity\File::load($hero_image[0]['target_id']);
                        $variables['arr1']  = Drupal\image\Entity\ImageStyle::load('270x145')->buildUrl( $uri);
                    }?>