New

Just launched: Vueblocks, a brand-new search engine for Vue packages! Explore Vueblocks →

rodrigopedra/laravel-history-navigation

History navigation inspired by JavaScript's History API
551
Install
composer require rodrigopedra/laravel-history-navigation
Latest Version:v1.4.1
PHP:^8.1
Laravel:10
Older releases:5 – 9
License:MIT
Last Updated:Oct 24, 2026
Links: GitHub  ·  Packagist
Maintainer: rodrigo.pedra

Laravel History Navigation

History navigation inspired by the browser's History API

composer require rodrigopedra/laravel-history-navigation
  • Version 1.0.0 supports Laravel 10.x (and as such, requires PHP 8.1)
  • Version 0.9.x supports Laravel from version 6.x through 9.x

Introduction

This package aims to mimic the browser's History API.

It tries to automatically track the navigation history, and provides two global helpers to allow redirecting a user back on history.

The idea was to provide back history navigation to applications which do deep navigation, such as drill-down data dashboards, and doesn't always have a clear back path.

Usage

On a view you can use the navigate_back() helper as the href of a a back link/button:

<a href="{{ navigate_back('/') }}">Go back</a>

The parameter is a default destination, in case the history is empty.

There is also the navigate_default() helper. It will check if a use_default query parameter is present in the request, if so it will try to redirect to the default route defined as its parameter. If the query parameter is not present it will defer to navigate_back().

Configuration

You can publish the configuration by running

php artisan vendor:publish --provider=RodrigoPedra\\HistoryNavigation\\HistoryNavigationServiceProvider

You should now have a file called navigate-back.php under your config folder. Below are the default values:

<?php

return [
    'default-url' => '/',
    'history-limit' => 50,
    'skip-patterns' => [],
    'query' => [
        'remove-empty' => true,
        'ignore-parameters' => ['page'],
    ],
];

Caveats

This package relies on the user's session, as such if a user has multiple tabs or windows opened and navigates within the same application, it will not work as expected as it will mix the different tabs/windows navigation history.

This package was developed with a very specific scenario in mind, for an intranet application that ran within a single window browser wrapper (similar to electron).

Nowadays, I do not recommend its adoption on new projects, and advise on using the browser's native History API.

Related Packages

convenia/revisionable

Keep a revision history for your eloquent models without thinking

12,525 9
konekt/history

Eloquent Model History for Laravel

3,502 0
alexvergara/auditable

Save model's data changes automatically to audit log - package for Laravel 8-11

1,578 1
andrewboy/historylog

Laravel package for Model history logging.

936 2
sofa/revisionable

Nice and easy way to handle revisions of your db.

203,217 256

Version History

Version Released PHP Laravel License
v1.4.1 ^8.1 ^10.0 MIT
v1.4.0 ^8.1 ^10.0 MIT
v1.3.0 ^8.1 ^10.0 MIT
v1.2.0 ^8.1 ^10.0 MIT
v1.1.0 ^8.1 ^10.0 MIT