top of page

Get the Current URL in Laravel Controller & View

Updated: Mar 2, 2023

Laravel is a PHP web framework that is widely used by developers to build modern and robust web applications. In Laravel, there are different ways to get the current URL, which is the URL of the current page or route being accessed by the user. In this article, we will explore the different methods to get the current URL in both the controller and view files in Laravel.


Getting the Current URL in Laravel Controller

In Laravel, we can get the current URL in a controller by using the Illuminate\Http\Request class. This class provides a url() method that returns the full URL of the current request. Here's an example code snippet:

use Illuminate\Http\Request;

class MyController extends Controller{
    public function myMethod(Request $request)
    {
        $currentUrl = $request->url();
        return view('my-view', ['currentUrl' => $currentUrl]);
    }
}

In the above example, we have imported the Illuminate\Http\Request class and injected it into the myMethod() method. We then call the url() method on the $request object to get the current URL, which we then pass to the view using the view() function.


To test this method, we can create a new route in routes/web.php file that points to the myMethod() method:

Route::get('/my-route', 'MyController@myMethod');

We can then create a new view file called my-view.blade.php and display the current URL by accessing the $currentUrl variable that we passed from the controller:

<p>Current URL: {{ $currentUrl }}</p>

When we visit the /my-route URL, we should see the current URL displayed on the page.


Getting the Current URL in Laravel View

In Laravel, we can also get the current URL directly in a view file without having to pass it from a controller. Laravel provides a url() helper function that we can use to get the current URL. Here's an example code snippet:

<p>Current URL: {{ url()->current() }}</p>

In the above example, we call the url() function and chain the current() method to get the current URL. We then output the result using the Blade templating engine's syntax {{ }}.


We can also get the current URL with query string parameters by calling the full() method instead of the current() method:

<p>Current URL with query string: {{ url()->full() }}</p>

This will return the current URL with any query string parameters included.


Conclusion

In this article, we have explored the different methods to get the current URL in both the controller and view files in Laravel. In the controller, we can get the current URL by injecting the Illuminate\Http\Request class and calling the url() method. In the view, we can use the url() helper function and chain the current() or full() methods to get the current URL. By using these methods, we can build more dynamic and interactive web applications in Laravel.

0 comments
bottom of page