Laravel: Как заставить CKEditor отображать первые несколько слов тела сообщения, не изменяя стилизацию других сообщений - PullRequest
0 голосов
/ 09 апреля 2020

Я делаю проект Laravel, для которого требуются данные, записанные в базу данных и извлеченные из нее с помощью CKEditor на моем веб-сайте. Он отображает сообщения соответственно, так что нет ничего плохого в поиске, и я могу обрезать каждое из них, чтобы показать первые несколько слов (потому что тогда я хочу, чтобы люди нажимали на сообщения и читали их на своих отдельных страницах), но HTML от CKEditor объединяет и редактирует другие сообщения, которые вообще не имеют какого-либо стиля (в данном случае это зачеркнутый текст).

ИЗОБРАЖЕНИЕ 1: что происходит с другими сообщениями благодаря публикации 4

ИЗОБРАЖЕНИЕ 2: как должны выглядеть другие посты, потому что у них нет стиля

ИЗОБРАЖЕНИЕ 3: в каком посте 4 полностью написано

Все, что я действительно хотел бы, это чтобы первые слова или даже строки каждого сообщения отображались при сохранении формата, сделанного из CKEditor (например, включая курсив и жирный шрифт).

Есть идеи, как это сделать? Спасибо:)

INDEX.BLADE. PHP

@extends('layouts/app')

@section('content')
    <h1>Posts</h1>
    @if(count($posts)>0)
        @foreach($posts as $post)
            <?php 
                $string = html_entity_decode($post->body);
            ?>
            <div class="well">
                <h3><a href="/posts/{{$post->id}}">{{$post->title}}</a></h3>
                <p>{!!Str::words($string, 7, '...')!!}</p>
                <small>{{$post->created_at}}</small>
            </div>
            <br/>
        @endforeach
        {{$posts->links()}}
    @else
        <h4>NO POSTS FOUND :(</h4>
    @endif
@endsection

1 Ответ

0 голосов
/ 09 апреля 2020

Попробуйте это-

{{ Str::limit($post->body, 7) }}

Для CKEditor-

{!! Str::limit($post->body, 7) !!}
...