Usando collections customizadas no Eloquent

por Leonardo Hipolito

Não é incomum precisarmos utilizar map() ou mesmo filter() em nos resultados de nossas buscas no Eloquent e alguns desses mappers ou filters podem acabar se repetindo constantemente em diversos pontos do nosso projeto.

Geralmente acabamos por criar uma classe helper, adicionar um acessor ou mesmo adicionar um novo método no nosso Model, gerando algo do tipo:

// ... PostsHelper.php
public function postsWithExcerpt(Collection $posts,$limit){
    return $posts->map(function(Post $post){
        $post->excerpt = substr($post->content, 0,$limit);
        return $post;
    });
}

Mais convenhamos... não seria muito mais simples se pudessemos fazer algo do tipo:

use App\Models\Post;
//...
Post::paginate()->withExcerpt();
// ou
Post::all()->withExcerpt();

Neste tutorial irei te ensinar a fazer justamente isso de forma simples e rápida:

Código

Commit

E ai, curtiu?
Compartilhe: