dev*_*aam 2 php symfony sonata-admin
我是Symfony的新手并试图在sonata管理包中列出图像.但我有点混淆如何在twig文件中获取一个对象,以便我可以得到我的图像源的确切路径.
这是我的代码
protected function configureListFields(ListMapper $listMapper)
{
// $image = $this->getSubject();
$listMapper
->addIdentifier('caption')
->add('image','string', array('template' => 'swaamImageUploaderBundle:Admin:list_image.html.twig'))
;
}
Run Code Online (Sandbox Code Playgroud)
这是我的list_image.html.twig文件
{% extends 'SonataAdminBundle:CRUD:base_list_field.html.twig' %}
{% block field%}
<img src="{{ 'uploads/images/822b23a922f43bb664cb58ca57de6cccccc962e5.jpeg'}}">
{#<img src="{{ asset(image.getthumbWebPath) }}">#}
{% endblock %}
Run Code Online (Sandbox Code Playgroud)
在我的图像源标签中,我为测试提供了硬编码路径.但不知道如何从db获取路径.
另外,当我只写 - >添加('图像')在控制器中我从后端显示的db获取我的确切路径.
我有一个实体图像.
谁能帮帮我?
Sim*_*neB 10
我想你正在使用Sonata Media Bundle
你必须使用该实体,你可以在这里找到所需的帮助:http://sonata-project.org/bundles/media/2-2/doc/reference/helpers.html
如果你需要在控制器中获得完整路径(可能发生,很少但可能发生),你必须使用媒体服务
$mm = $this->container->get('sonata.media.manager.media');
$pr = $this->container->get('sonata.media.provider.image');
$media = $mm->findOneBy(array('id' => $idImage));
$format = $pr->getFormatName($media, 'default');
$path = $pr->generatePublicUrl($media, $format);
Run Code Online (Sandbox Code Playgroud)
或使用控制器内的树枝助手
$format = 'default'; //the format you want to show
$path=$this->get('sonata.media.twig.extension')->path($image, $format);
Run Code Online (Sandbox Code Playgroud)
如果要将图像添加到Sonata Admin(您的案例)的列表字段中,您可以使用此代码
{% block field %}
{% thumbnail object.image, 'thumb' %}
{% endblock %}
Run Code Online (Sandbox Code Playgroud)
其中image是实体的图像getter方法(es getImage())
| 归档时间: |
|
| 查看次数: |
5534 次 |
| 最近记录: |