Laravel обрезание текса в php с сохранением слов

101
15 января 2020, 17:30

как вывести из базы с обрезанием по символам, желательно слова не отрезать

<table class="table">
 <tbody>
  @foreach ($post as $article)
    <tr>
      <th scope="row">{{$article->id}}</th>
      <td>{{$article->title}}</td>
      <td>{{$article->slug}}</td>
      <td>{{$article->content}}</td>
      <td>{{$article->created_at}}</td>
    </tr>
  @endforeach
  </tbody>
</table>

Controller

<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Posts;
class Blog extends Controller
{
    public function index()
    {
      $post = Posts::orderby('created_at','desc')->paginate(5);  
      return view('admin.pages.index')->withPost($post);
    }
Answer 1

Порекомендую хорошие практики написания кода в контексте Laravel, а также одельно обращаю внимание на соглашение по именованию, т.к. заметил по-видимому модель c именем Posts (рекомендуется называть модели в единственном числе, а таблицы - во множественном)

Можно создать акцессор в модели для формирования отформатированного по длине контента

use Illuminate\Support\Str;
class Post extends Model
{
    // ...
    protected function getShortContentAttribute()
    {
        // 1. Str::words() - обрезает строку по количеству слов, переданному вторым параметром
        // 2. Просто совет, основанный на практике: "внутри" модели к атрибутам обращаемся 
        // либо через ArrayAccess ($this['name']), 
        // либо используя метод getAttribute ($this->getAttribute('name'))
        return Str::words((string)$this['content'], 10);
    }
}

В шаблоне

<table class="table">
 <tbody>
  @foreach ($posts as $post)
    <tr>
      <th scope="row">{{$article->id}}</th>
      <td>{{$post->title}}</td>
      <td>{{$post->slug}}</td>
      <!--выводим short_content (camel_case) -->
      <td>{{$post->short_content}}</td>
      <td>{{$post->created_at}}</td>
    </tr>
  @endforeach
  </tbody>
</table>
READ ALSO
Подключение двух таблиц к одному .php

Подключение двух таблиц к одному .php

Проблема в том что у меня в БД mysql имеется 2 таблицы,и мне надо как-то одновременно из этих таблиц выводить значения

109
Помогите разобраться с ошибкой Call to a member function getActiveSheet() on null

Помогите разобраться с ошибкой Call to a member function getActiveSheet() on null

Возможно вопрос глупый, но, видимо глаз уже замылился и не вижу очевидногоПри работе с классом возникла такая ошибка: Uncaught Error: Call to a member function...

121
Как записать данные в определенный блок в другом файле?

Как записать данные в определенный блок в другом файле?

Для записи данных в другой файл использую следующий код:

140
Постинг сообщений VK картинка + ссылка

Постинг сообщений VK картинка + ссылка

Доброй ночиНаписал постер сообщений в свою группу ВК, но появилась проблема

135