Динамическая кнопка возврата Laravel?

#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.history

2. Нет, мне не нужна кнопка возврата браузера, потому что, если у меня есть 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. Здравствуйте, я обновил свои маршруты, чтобы они стали более динамичными, добавил обновленные маршруты выше. Есть ли какой-нибудь способ добиться того же с помощью этих новых динамических маршрутов? Большое вам спасибо!