Проблема сериализации уведомлений Laravel

Вот мой плагин jquery print

(function ($) {

$.fn.printme = function () {
    return this.each(function () {
        var container = $(this);

        var hidden_IFrame = $('<iframe></iframe>').attr({
            width: '1px',
            height: '1px',
            display: 'none'
        }).appendTo(container);

        var myIframe = hidden_IFrame.get(0);

        var script_tag = myIframe.contentWindow.document.createElement("script");
        script_tag.type = "text/javascript";
        script = myIframe.contentWindow.document.createTextNode('function Print(){ window.print(); }');
        script_tag.appendChild(script);

        myIframe.contentWindow.document.body.innerHTML = container.html();
        myIframe.contentWindow.document.body.appendChild(script_tag);

        myIframe.contentWindow.Print();
        hidden_IFrame.remove();

    });
};
})(jQuery);
1
задан Blas Amarilla 1 March 2019 в 13:51
поделиться

1 ответ

Как вы сами обнаружили JSON не принимает двоичные данные, уловка заключается в том, чтобы закодировать BLOB - base64 , чтобы его можно было использовать в JSON , единственным недостатком является то, что вы должны декодировать его при извлечении JSON .

Вы можете использовать accessor в вашей модели, чтобы иметь возможность автоматически кодировать поле BLOB-объекта , когда Модель сериализирована в [ 1121] JSON , то есть:

// in User Model
public function getBlobAttribute($value)
{
    return base64_encode($value);
}

Необходимо запомнить , чтобы декодировать BLOB , когда вы используете его в качестве реальных двоичных данных (например, если это изображение), то есть:

$blob = base64_decode($model->blob)

Или вы можете написать метод, который извлекает BLOB-объект без , используя accessor:

[ 112]

Надеюсь, это поможет.

0
ответ дан dparoli 1 March 2019 в 13:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: