Laravel: создание иерархического маршрута для категории


Я внедряю структуру категорий, некоторые продукты будут иметь одну категорию уровня, но другие могут иметь два или более уровня:

/posts/cat2/post-sulg

/posts/cat-1/sub-1/post-slug

/posts/cat-3/sub../../../post-slug

Поскольку я не знаю, какой глубины это будет, и использование category slugs только для seo (я нахожу пост только по его slug), каков лучший способ создать маршрут для обработки этой структуры?

1 2

1 ответ:

Вы можете решить это с помощью:

Route::get('posts/{categories}', 'PostController@categories')
    ->where('categories','^[a-zA-Z0-9-_\/]+$');

, а затем в контроллере

class PostController
{
    public function categories($categories)
    {
        $categories = explode('/', $categories);
        $postSlug = array_pop($categories)

        // here you can manage the categories in $categories array and slug of the post in $postSlug
        (...)
    }

}