DEV Community

Cover image for Crea extractos de texto en Laravel
Ariel Mejia for Devscamp

Posted on

Crea extractos de texto en Laravel

Laravel 7 agrega un nuevo método a la clase "Illuminate\Support\Str".

Supongamos que tenemos un modelo "Post" y al mostrar todos los posts en una vista tipo "index" o lista de posts, y en vez de mostrar todo el texto, queremos mostrar únicamente un extracto del texto, en Laravel podemos hacer esto de varias formas.

Creando un Accessor:

use Illuminate\Support\Str;

class Post
{
    const EXCERPT_LENGTH = 100;

    protected $fillable = [
        ..., 'body'
    ]

    protected $appends = ['excerpt'];

    public function getExcerptAttribute()
    {
        return Str::limit($this->body, Post::EXCERPT_LENGTH)
    }
}
Enter fullscreen mode Exit fullscreen mode

So now in your blade files you can use this method:

Ahora podrás usar el accessor en tus vistas y en cualquier parte de tu codigo donde uses el modelo post.

<h1>{{ $post->title }}</h1>

<p>{{ $post->excerpt() }}</p>

Enter fullscreen mode Exit fullscreen mode

Tambien puedes usar una directiva blade especifica para esto, podemos crear un provider para directivas blade:

php artisan make:provider BladeServiceProvider
Enter fullscreen mode Exit fullscreen mode

Agregamos la logica para crear una directiva blade en el método "boot".

/**
 * Bootstrap services.
 *
 * @return void
*/
public function boot()
{
    Blade::directive('excerpt', function ($text) {
        return "<?php echo Str::limit($text, 100); ?>";
    });
}
Enter fullscreen mode Exit fullscreen mode

Y en tus vistas puedes usar la directiva así:

<p>@excerpt($post->body)</p>
Enter fullscreen mode Exit fullscreen mode

Espero que te sea de utilidad, saludos!

Image of Docusign

Bring your solution into Docusign. Reach over 1.6M customers.

Docusign is now extensible. Overcome challenges with disconnected products and inaccessible data by bringing your solutions into Docusign and publishing to 1.6M customers in the App Center.

Learn more

Top comments (0)

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs