Getting the Current URL in Blade Laravel

Posted on

Understanding How to Get Current URL in Laravel Blade

In developing web applications using Laravel, sometimes we need to perform certain actions based on the URL that is being accessed by the user. For example, we may want to display different elements or execute different logic depending on the current page, by getting the current URL in Blade Laravel.

This is where it’s important to understand how to get the current URL in Laravel, specifically in the Blade files, which are part of our application’s interface. Luckily, Laravel provides an easy way to do this.

Using Laravel Helpers

One of the easiest ways to get the current URL in Blade Laravel is to use a Laravel helper called request()->is(). It is a powerful tool that allows us to inspect URLs and perform actions based on appropriate patterns.

For example, let’s say we want to display a certain element only when the user is on the ‘/data‘ page. Using this helper, we can write the following code:

<!-- Blade Template -->
@if(request()->is('data'))
    <div>
        <!-- The content you want to display -->
    </div>
@endif

In the above example, we use request()->is('data') to check if the current URL matches the given pattern, ‘/data‘. If they match, then the code block inside @if will be executed and the corresponding elements will be displayed.

Use conditional expressions in Blade

Apart from that, we can also use other conditional expressions, such as @elseif or @else, to handle different cases. For example:

<!-- Blade Template -->
@if(request()->is('data'))
    <div>
        <!-- The content you want to display -->
    </div>
@elseif(request()->is('profile'))
    <div>
        <!-- The content you want to display -->
    </div>
@else
    <div>
        <!-- Default content if no pattern matches-->
    </div>
@endif

Comparison URLs in Blade Laravel

To handle the comparison of two links, for example, if we want to display an element if the current URL is ‘/data‘ or ‘/profile‘, we can use the operator || (or) as follows:

<!-- Blade Template -->
@if(request()->is('data') || request()->is('profile'))
    <div>
        <!-- The content you want to display -->
    </div>
@endif

This way, we can easily customize the appearance or logic of the application based on the URL being accessed by the user. This helps in providing a more dynamic and relevant user experience.