Laravel создание короткого URL - PullRequest
0 голосов
/ 20 марта 2020

Я хочу удалить одну часть URL, чтобы сделать URL-адрес короче в приложении laravel.

Это мое определение маршрутов:

Route::get('/category/{slug}','CourseController@courseCategory');
Route::get('/course/{slug}','CourseController@detail');

Например, у меня есть категории обслуживания клиентов и сна. И курс под названием Sleep care lvl 1. Таким образом, я могу получить доступ к категориям и курсам по этим ссылкам:

  • mydomain.com / category / customer-service
  • mydomain.com / категория / уход за сном
  • mydomain.com / course / sleep-care-lvl-1

Могу ли я узнать, как можно сократить URL-адрес, удалив категорию и Конечно, в URL, URL-адреса станут:

  • mydomain.com / обслуживание клиентов
  • mydomain.com / sleep-care
  • mydomain. com / sleep-care-lvl-1

Большое спасибо!

1 Ответ

0 голосов
/ 20 марта 2020

В конце концов, маршруты - это просто строки.

Самый простой способ достичь того, что вы хотите сделать, это обновить маршруты

Route::get('/category/{slug}','CourseController@courseCategory');
Route::get('/course/{slug}','CourseController@detail');

Станет

Route::get('my-short-route','CourseController@courseCategory');
Route::get('my-other-short-route','CourseController@detail');

Однако это не решит ваш вопрос и не очень хорошее решение,

, но оно действительно представляет интерес.

То, что вы пытаетесь сделать, невозможно без рефакторинга всего приложения. Нет .htaccess, который может помочь в этом, потому что вам нужно иметь точку входа в приложение.

Эта точка входа не может быть переменной wilcard.

Это означает, что вы не сможете этого сделать

Route::get('{slug}','CourseController@courseCategory');

Потому что это будет действовать как улов всех

Вы можете сделать что-то вроде

  • mydomain.com / this-is-a-random-string

, который вызовет метод courseCategory для CourseController

The way it это правильное соглашение, я бы не стал его менять

...