fullstackru
@fullstackru

Как вывести slug категории в посте Laravel?

Ребят, как в Laravel вывести slug категории в посте, чтобы ссылка была подобного рода: domain/category/post-name. Везде искал - и в рунете, и в буржунете, но так и ничего не нашел.

Если знаете - покажите пожалуйста пример или хотя бы скиньте ссылку, если тоже сталкивались с подобной проблемой.
  • Вопрос задан
  • 472 просмотра
Решения вопроса 1
@jazzus
Сформировать слаг
$slug = Str::slug($name);
Записать в бд, сделать роут
Route::get('{slug_category}/{slug_post}', 'PostController@show')->name('post.show');

роут в шаблоне
{{route('post.show', [$category->slug,$post->slug])}}

В контроллере принимаете аргументы и ищете пост по слагу builder->where('slug',$slug)->firstOrFail();
параметры в маршрутах
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@NubasLol
$post->category->slug
Ответ написан
Комментировать
fullstackru
@fullstackru Автор вопроса
Я сделал гораздо проще:

public function posts()
{
    return $this->morphedByMany('App\Post', 'category_able');
}


$category = App\Category::first();
$category->posts();


Route::get("/{$category->slug}/{slug?}", 'BlogController@post')->name('post');


{{ route('post', $post->slug) }}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы