Рендеринг изображения в сонате Админ-лист. [LiipImagineBundle]

Я пытаюсь отобразить изображение моего продукта в списке администраторов сонаты.

На моей странице индекса я отображаю свой продукт следующим образом:

    {% for entity in entity %}
<span><img alt="airline" width="500" height="400" src="{{  entity.image.path}}" ></span>
{% endfor %}

Я пытался сделать то же самое, но это не работает.

Поэтому я решил установить LiipImagineBundle и вот что я сделал.

ProductAdmin.php

->add('image.id', null, array('template' => 'ApplicationSonataBackcommerceBundle::list_image.html.twig'))

list_image.html.twig

{% extends 'SonataAdminBundle:CRUD:base_list_field.html.twig' %}
{% block field%}
<div>
{% for entity in entity %}
<img src="{{ entity.image.path | imagine_filter('productThumb') }}" />
{% endfor %}
</div>
{% endblock %}

config.yml

liip_imagine:
resolvers:
default:
web_path: ~

filter_sets:
cache: ~
productThumb:
quality: 90
filters:
thumbnail: { size: [47, 42], mode: outbound }

У меня есть эта ошибка, когда я обновляю страницу:

Исключение было сгенерировано во время рендеринга шаблона.
(«Примечание: неопределенный индекс: сущность») в
ApplicationSonataBackcommerceBundle :: list_image.html.twig в строке 4.

РЕДАКТИРОВАТЬ

Это метод полного добавления:

/**
* @param \Sonata\AdminBundle\Datagrid\ListMapper $listMapper
*
* @return \Sonata\AdminBundle\Datagrid\ListMapper
*/
protected function configureListFields(ListMapper $listMapper)
{
$listMapper
->addIdentifier('id')
->add('user.id')
->add('image.id', null, array('template' => 'ApplicationSonataBackcommerceBundle::list_image.html.twig'))
->add('airport', null, array('editable' => true))
->add('airport1', null, array('editable' => true))
->add('departuredate')
->add('arrivaldate')
->add('price')
->add('telephone', null, array('editable' => true))
->add('_action', 'actions', array(
'actions' => array(
'show' => array(),
'edit' => array(),
'delete' => array(),
)

));
return $listMapper;
}

Это сгенерированный HTML только из двух изображений:

    <td class="sonata-ba-list-field sonata-ba-list-field-integer" objectId="7">
<div>
<img src="http://127.0.0.1/symfony/web/app_dev.php/media/cache/resolve/productThumb/symfony/web/airline/Emirates.png" />
</div>
</td><td class="sonata-ba-list-field sonata-ba-list-field-integer" objectId="9">
<div>
<img src="http://127.0.0.1/symfony/web/app_dev.php/media/cache/resolve/productThumb/symfony/web/airline/Singapore_Airlines.svg" />
</div>
</td>

3

Решение

Это потому, что вы изменили cache_prefix,

в оригинальный документ , извлечь:

For example with this bundle the following is possible:

<img src="{{ '/relative/path/to/image.jpg' | imagine_filter('thumbnail') }}" />

Префикс кэша по умолчанию: cache_prefix: media/cache
потому что он генерируется в www.yoursite/media/cache/

Вы изменились /symfony/web/media/cache/cache/airline

Так что, если вы отправите это по {{ entity.image.path | imagine_filter('productThumb') }} путь не разыскиваемый родственник …

Вы отправляете это сейчас /symfony/web/media/cache/cache/airline/your_image.jpg

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]