phplaravel-5laravel-bladecontrollershelper

How do I make global helper functions in laravel 5?


If I wanted to make a currentUser() function for some oauth stuff I am doing where I can use it in a view or in a controller (think rails, where you do helper_method: current_user in the application controller).

Everything I read states to create a helpers folder and add the function there and then that way you can do Helpers::functionName Is this the right way to do this?

Whats the "laravel way" of creating helper functions that can be used in blade templates and controllers?


Solution

  • Create a new file in your app/Helpers directory name it AnythingHelper.php An example of my helper is :

    <?php
    function getDomesticCities()
    {
    $result = \App\Package::where('type', '=', 'domestic')
        ->groupBy('from_city')
        ->get(['from_city']);
    
    return $result;
    }
    

    generate a service provider for your helper by following command

    php artisan make:provider HelperServiceProvider
    

    in the register function of your newly generated HelperServiceProvider.php add following code

    require_once app_path('Helpers/AnythingHelper.php');
    

    now in your config/app.php load this service provider and you are done

    'App\Providers\HelperServiceProvider',