使用Symfony Twig从数据库显示Blob图像

时间:2017-08-14 20:56:51

标签: php symfony twig blob

我正在尝试为每篇博文显示图片。我让他们设置,以便显示博客名称,摘录和发布日期,但我正在努力获取我存储为Blob的图像。我附加了我的代码,它分为3部分:实体,它设置并获取变量; index.html.twig文件,它是前端(我如何显示图像);和post.orm.yml文件,用于设置图像的项目类型,即BLOB。

发布实体

/**
 * Set image
 *
 * @param /post/blob $image
 *
 * @return Post
 */
public function setimage($image)
{
    $this->image = $image;

    return $this;
}

/**
 * Get image
 *
 * @return post/blob
 */
public function getimage()
{
    return $this->image;
}

index.html.twig

{{post.image}}

post.orm.yml

Shannon\BlogBundle\Entity\Post:
    type: entity
    table: null
    repositoryClass: Shannon\BlogBundle\Repository\PostRepository
    id:
        id:
            type: integer
            id: true
            generator:
                strategy: AUTO
    fields:
        title:
            type: string
            length: '255'
        body:
            type: text
        publishedAt:
            type: datetime
            column: published_at
        image:
            type:image
    lifecycleCallbacks: {  }

postcontroller.php

public function imageAction($ id) {     $ image = $ this-> getDoctrine() - > getRepository(' ShannonBlogBu​​ndle:Image') - > findOneBy(array(' id' => $ id));
    返回$ this-> render(' index.html.twig',array(' image' => $ image)); } }     公共功能imageAction($ id) {     $ image = $ this-> getDoctrine() - > getRepository(' ShannonBlogBu​​ndle:Image') - > findOneBy(array(' id' => $ id));
    返回$ this-> render(' index.html.twig',array(' image' => $ image)``); }

1 个答案:

答案 0 :(得分:1)

您需要在 base64 中对图片进行编码,然后将其嵌入HTML中:

<img  src="data:image/png;base64,{{ imageBase64 }}" />