#laravel #routes #laravel-routing
#laravel #маршруты #laravel-маршрутизация
Вопрос:
Я хочу реализовать динамический способ кнопки возврата в моем проекте Laravel.
Итак, у меня есть эта кнопка:
<a href="WHAT TO DO HERE">
<div class="go-back">
<div class="go-back-inside">
<h6 class="text">Go Back</h6>
</div>
</div>
</a>
Которую я включил на каждую страницу, я хочу сделать так, чтобы одна кнопка была включена на всех страницах, и, например, если я включен bentley-flying-spur
и нажимаю «Назад», я хочу перейти к базовому маршруту префикса (/) [services / cars/], или если яя включен riva
и нажимаю кнопку возврата, чтобы перейти к базовому маршруту (/) [сервисы / яхта /];
Одна и та же кнопка включена в оба bentley-flying-spur
и riva
как она может динамически переходить к группе маршрутов (/)
Route::prefix('services')->group(function () {
Route::get('/', function () {
return view('web.services');
});
Route::prefix('cars')->group(function () {
Route::get('/', function () {
return view('web.modules.cars.products');
});
Route::get('/bentley-flying-spur', function () {
return view('web.modules.cars.models.bentley-flying-spur');
});
});
Route::prefix('yacht')->group(function () {
Route::get('/', function () {
return view('web.modules.riva.products');
});
Route::get('/riva', function () {
return view('web.modules.riva.models.riva');
});
});
}):
ДИНАМИЧЕСКИЕ МАРШРУТЫ
Route::get('/', 'MainController@index');
Route::get('/services', 'MainController@services');
Route::get('/services/{service}', 'MainController@service');
Route::get('/services/{service}/{product}', 'MainController@product');
Комментарии:
1. Как кнопка возврата в браузере ?! Не используйте
<a>
, кроме<button>
и window.history2. Нет, мне не нужна кнопка возврата браузера, потому что, если у меня есть 2 типа автомобилей, и сначала я нажимаю на BMW, затем возвращаюсь к автомобилям, а затем нажимаю на Rolls Royce и снова возвращаюсь к автомобилям, следующим возвратом будет BMW .. Чего я хочу добиться, так этокнопка «Назад», чтобы перенаправить меня на базовый маршрут группы префиксов, поэтому для автомобилей, если я нахожусь на BMW и нажимаю «Вернуться», он перенаправит меня
/services/cars
, и теперь, если я нажму «Назад», он свяжет меня сservices
, чтобы перейти к группе верхнего уровня3. Почему «следующим возвращением будет BMW» в этом сценарии?
Ответ №1:
Используйте {{url(request()->route()->getPrefix())}}
в своем атрибуте href.
Что я бы сделал, так это переместил нулевые маршруты на следующий префикс, как показано ниже. Я протестировал, и это должно сработать.
Route::prefix('services')->group(function () {
Route::get('/', function () {
return view('web.services');
});
Route::get('/cars', function () {
return view('web.modules.cars.products');
});
Route::get('/yacht', function () {
return view('web.modules.riva.products');
});
Route::prefix('cars')->group(function () {
Route::get('/bentley-flying-spur', function () {
return view('web.modules.cars.models.bentley-flying-spur');
});
});
Route::prefix('yacht')->group(function () {
Route::get('/riva', function () {
return view('web.modules.riva.models.riva');
});
});
});
Я думаю, что это также очищает его и становится немного понятнее.
Комментарии:
1. Спасибо! Пробовал это, оно работает, но не во всех сценариях, оно работает, например, если я включен
services/cars/bmw-7
и нажимаю «Вернуться», оно перенаправляет меня на тоservices/cars/
, что я хотел, теперь на этом экране у меня также есть кнопка возврата, что я хочу сделать, это связать сservices/
как я могусделать это возможным? Потому что, если вы посмотрите в приведенном выше коде, у меня есть одна основная группа префиксных сервисов , а внутри есть больше групп, поэтому, если я нажмуservices/cars/
кнопку «Назад», я должен перейти на верхний уровеньservices/
2. Позвольте мне объяснить это более понятно: текущий URL:
services/cars/bmw-7
ссылки на кнопки возврата к ->services/cars/
Текущий URL:services/cars
ссылки на кнопки возврата к ->services/
Текущий URL:services
ссылки на кнопки возврата к ->/
Может ли это быть достигнуто с помощью одной кнопки возврата динамически?3. Хорошо, я обновлю. Я сделал это со своего телефона.
4. Работает, как ожидалось! Спасибо!
5. Здравствуйте, я обновил свои маршруты, чтобы они стали более динамичными, добавил обновленные маршруты выше. Есть ли какой-нибудь способ добиться того же с помощью этих новых динамических маршрутов? Большое вам спасибо!