0

i have some problems with calling helpers in Laravel. I have blade, and this code in it

@foreach ($sel->get_offers() as $o)
<option value="{{$o->get_date_range()->get_range()}}" {{($o->get_offer_key() == $u_key)? 'selected': ''}}>
@php
$select = $o->get_date_range()->get_start('j M D');
$change = str_replace(["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], [uctrans('labels.Monday'), uctrans('labels.Tuesday'), uctrans('labels.Wednesday'), uctrans('labels.Thursday'), uctrans('labels.Friday'), uctrans('labels.Saturday'), uctrans('labels.Sunday'), uctrans('labels.Jan'), uctrans('labels.Feb'), uctrans('labels.Mar'), uctrans('labels.Apr'), uctrans('labels.May'), uctrans('labels.Jun'), uctrans('labels.Jul'), uctrans('labels.Aug'), uctrans('labels.Sep'), uctrans('labels.Oct'), uctrans('labels.Nov'), uctrans('labels.Dec')], $select);  @endphp
{{$change}}
</option>                    
@endforeach

So now, i need variable $change to remove from blade and import to helper (but still call to blade), like this

function translate_selects()
{
    $change = str_replace(["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], [uctrans('labels.Monday'), uctrans('labels.Tuesday'), uctrans('labels.Wednesday'), uctrans('labels.Thursday'), uctrans('labels.Friday'), uctrans('labels.Saturday'), uctrans('labels.Sunday'), uctrans('labels.Jan'), uctrans('labels.Feb'), uctrans('labels.Mar'), uctrans('labels.Apr'), uctrans('labels.May'), uctrans('labels.Jun'), uctrans('labels.Jul'), uctrans('labels.Aug'), uctrans('labels.Sep'), uctrans('labels.Oct'), uctrans('labels.Nov'), uctrans('labels.Dec')], $select);
    return $change;
}

How i can call this helper in blade/controller? I didn't make any changes in config/app.php.

Peter
  • 777
  • 2
  • 13
  • 34
  • 1
    Possible duplicate of [Best practices for custom helpers on Laravel 5](https://stackoverflow.com/questions/28290332/best-practices-for-custom-helpers-on-laravel-5) – Saad Suri Jul 31 '18 at 10:30

2 Answers2

0

you can create file and called it helper.php .

this file will not have classes or interfaces its just function.

then in composer.json file put helper.php path in files key .

like that .

"autoload": {
    "files": [
        "app/helper.php" // full path here for your file
    ],
}

helper.php file will be like that .

<?php

function translate_selects()
{

$change = str_replace(["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], [uctrans('labels.Monday'), uctrans('labels.Tuesday'), uctrans('labels.Wednesday'), uctrans('labels.Thursday'), uctrans('labels.Friday'), uctrans('labels.Saturday'), uctrans('labels.Sunday'), uctrans('labels.Jan'), uctrans('labels.Feb'), uctrans('labels.Mar'), uctrans('labels.Apr'), uctrans('labels.May'), uctrans('labels.Jun'), uctrans('labels.Jul'), uctrans('labels.Aug'), uctrans('labels.Sep'), uctrans('labels.Oct'), uctrans('labels.Nov'), uctrans('labels.Dec')], $select);
return $change;
}

it's great to let me know how is it going with you .

0

Add new provide for Helper

artisan make:provider HelperServiceProvider

Move to app/Providers/HelperServiceProvider.php

Call all the HelperFile Via register method

public function register()
{
    foreach (glob(app_path().'/Helpers/*.php') as $filename){
        require_once($filename);
    }
}

Add Entry in providers config/app.php

'providers' => [
    'App\Providers\HelperServiceProvider',
]

Now you can call the custom helper function everywhere.

DsRaj
  • 2,288
  • 1
  • 16
  • 26