Yii2 显示来自 blob 数据库字段的图像

Yii2 show image from blob database field

我需要在 div.

中显示存储在数据库 blob 字段中的图像

有我的控制器

    public function actionQuartos($id)
    {
        $model = new Quarto();
        $quartos = $model::findAll(['hotelId' => $id]);
        return $this->render('quartosDisponiveis', ['quartos'=> $quartos]);
    }

还有模型

    class Quarto extends \yii\db\ActiveRecord
    {
    /**
     * {@inheritdoc}
     */
    public static function tableName()
    {
        return 'quarto';
    }

    /**
     * {@inheritdoc}
     */
    public function rules()
    {
        return [
            [['descricao', 'precoNoite', 'estado', 'hotelId'], 'required'],
            [['precoNoite'], 'number'],
            [['estado', 'img'], 'string'],
            [['hotelId'], 'integer'],
            [['descricao'], 'string', 'max' => 150],
            [['hotelId'], 'exist', 'skipOnError' => true, 'targetClass' => Hotel::className(), 'targetAttribute' => ['hotelId' => 'id']],
        ];
    }

    public function attributeLabels()
    {
        return [
            'id' => 'ID',
            'descricao' => 'Descricao',
            'precoNoite' => 'Preco Noite',
            'estado' => 'Estado',
            'img' => 'Img',
            'hotelId' => 'Hotel ID',
        ];
    }

我的观点

    <?php

    /* @var $this yii\web\View */


    $this->title = 'TOPHotels';
    ?>

    <?php
    foreach ($quartos as $dado){
    ?>

    <div id="modal">
        <div class="content">
            <img src="../../assets/hotel1.jpg" width="100px">
            <div>
                <h3><strong><?php echo $dado->descricao?></strong> </h3>
                <p><strong>Preço por noite: </strong><?php echo $dado->precoNoite?> </p>
                <p><strong>Comodidades do quarto: </strong></p>
                <ul class="a">
                <?php
                foreach ($dado->comodidadesQuartos as $comodidade){
                    ?>
                    <li><?php echo $comodidade->descricao?></li>

                    <?php
                }
                ?>
                </ul>
            </div>
            <input type="button"  class="buttonHotel" value="Ver HOTEL"/>
        </div>
    </div>

    <?php
    }
    ?>

我想在我的视图中显示我手动上传的图片。我无法弄清楚我必须在我的视图或控制器上放置什么类型的代码,如果有人知道请告诉我。

我需要在 div 元素内的视图中显示存储在数据库中的每个 blob 图像。

你可以使用这个:

<?= Html::img('data:image/jpeg;base64,'.base64_encode($dado->img), ['alt' => 'My image']) ?>

您还必须检查您的 MIME 类型

image/jpeg for .jpg and .jpeg files
image/png for .png files
image/gif for .gif files