[PROMOÇÃO] Assine com + 30% de desconto ANUAL MENSAL (últimas horas)
Victor Hugo da Silva
Criador Victor Hugo da Silva 22/07/2019

Estou criando um Blog, e gostaria de criar o "Slug" do titulo para criar uma url amigável.
Como eu faço para passar o titulo sluggado antes do $fillable ?

Manager Carlos Ferreira 22/07/2019

Olá, Victor!
Tudo bem?

Uma das melhores formas de fazer isso é trabalhando com observers.

Veja um exemplo, primeiro crie a classe de Observer:
php artisan make:observer PostObserver --model=Post

Essa classe vai ficar em app/Observers/PostObserver.php e usa o model app/Post.php

Agora no método created (que é chamado antes de criar o registro) você faz isso:
public function created(Post $post)
{
    $post->slug = kebab_case($post->title);
}

E para atualizar alterar o registro:
public function updated(Post $post)
{
    $post->slug = kebab_case($post->title);
}

E precisa registrar esse observer no Provider AppServiceProvider (app/Providers/AppServiceProvider.php):
// Não esquece:
// use App\Post;
// use App\Observers\PostObserver;
Post::observe(PostObserver::class);

Carlos Ferreira
Criador Victor Hugo da Silva 22/07/2019

Dessa forma ?

public function register()
{
// Post Observer
Post::observe(PostObserver::class);
}
Victor Hugo da Silva
Criador Victor Hugo da Silva 22/07/2019

Dessa forma ?

public function register()
{
// Post Observer
Post::observe(PostObserver::class);
}
Victor Hugo da Silva
Manager Carlos Ferreira 22/07/2019

Isso amigo.

Deu certo?

Carlos Ferreira
Criador Victor Hugo da Silva 22/07/2019

Ainda não testei, estou terminando os sistemas básicos para colocar em produção.
Mas, eu venho aqui quando testar e falo se deu certo.

Victor Hugo da Silva
Sabe a Solução? Ajude a resolver!

Precisa estar logado para conseguir responder a este ticket!

Clique Aqui Para Entrar!