Редактор Summernote WYSIWYG неправильно отображает данные в Laravel 5.8 - PullRequest
0 голосов
/ 09 июля 2019

У меня проблема с рендерингом данных и изображений из базы данных, я использую Summernote и Laravel, я вставлю свой код контроллера и просмотры, заранее спасибо.

Я получаю летоПримечание показывать правильно со всеми его параметрами, но когда я пытаюсь добавить некоторые вещи в мой текст, например, сделать его жирным шрифтом или что-то подобное, он не работает.

Контроллер:

public function createPost(Request $request){
        $this->validate($request, [

            'title' => 'required',

            'description' => 'required',

        ]);

        $title = $request->input('title');

        $description = $request->input('description');

        $writer = Auth::user()->id;

        $dom = new \DomDocument();

        $dom->loadHtml($description, LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD);    

        $images = $dom->getElementsByTagName('img');

        foreach($images as $k => $img){

            $data = $img->getAttribute('src');
            list($type, $data) = explode(';', $data);
            list(, $data)      = explode(',', $data);
            $data = base64_decode($data);
            $image_name= "/upload/" . time().$k.'.png';
            $path = public_path() . $image_name;
            file_put_contents($path, $data);
            $img->removeAttribute('src');
            $img->setAttribute('src', $image_name);

        }

        $description = $dom->saveHTML();

        $post = new Post;
        $post->title= $title;
        $post->description = $description;
        $post->writer = $writer;
        $post->save();

        return redirect()->route('home')->with('success', 'Post has been successfully added!'); 
}

Добавитьview:

        @if(Auth::check())
        <div class="col-md-12">
            <form method="post" action="{{ route('post.form') }}">
                {{ csrf_field() }}
                <div class="form-group">
                    <label for="name">Title</label>
                    <input type="text" class="form-control" id="id_title" name="title"
                           aria-describedby="title" placeholder="Enter title">
                </div>
                <div class="form-group">
                    <label for="description">Description</label>
                    <textarea class="form-control" id="content" rows="3" name="description" placeholder="Description"></textarea>
                </div>
                <button type="submit" class="btn btn-primary">Publish <i class="fas fa-paper-plane"></i></button>
            </form>
        </div>
        @endif

Вызов Summernote:

<script>
    $(document).ready(function() {
        $('#content').summernote({
            height:300,
        });

    });
</script>

Пример результата, заголовок плюс содержание: example

1 Ответ

0 голосов
/ 10 июля 2019

Проверьте вывод в браузере, возможно, плагин summernote не вызывается должным образом,

В заголовке тега проверьте плагин javascript и также css.Положите их в правильном порядке.

...