首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Laravel call helper

Laravel call helper
EN

Stack Overflow用户
提问于 2018-07-31 18:25:57
回答 2查看 179关注 0票数 0

我在调用Laravel中的助手时遇到了一些问题。我有刀锋,里面有这个代码

代码语言:javascript
复制
@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

所以现在,我需要变量$change从刀片中删除并导入到helper (但仍然调用刀片),如下所示

代码语言:javascript
复制
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;
}

如何在刀片/控制器中调用此帮助器?我没有在config/app.php中做任何更改。

EN

回答 2

Stack Overflow用户

发布于 2018-07-31 18:45:08

您可以创建文件并将其命名为helper.php。

这个文件将不会有类或接口来实现它的功能。

然后在composer.json文件中,将helper.php路径放在files键中。

就像这样。

代码语言:javascript
复制
"autoload": {
    "files": [
        "app/helper.php" // full path here for your file
    ],
}

helper.php文件将是这样的。

代码语言:javascript
复制
<?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;
}

很高兴能让我知道你过得怎么样。

票数 0
EN

Stack Overflow用户

发布于 2018-07-31 19:16:13

添加新的provide for Helper

代码语言:javascript
复制
artisan make:provider HelperServiceProvider

迁移到app/Providers/HelperServiceProvider.php

通过注册方法调用所有HelperFile

代码语言:javascript
复制
public function register()
{
    foreach (glob(app_path().'/Helpers/*.php') as $filename){
        require_once($filename);
    }
}

providers配置/app.php中添加条目

代码语言:javascript
复制
'providers' => [
    'App\Providers\HelperServiceProvider',
]

现在您可以在任何地方调用自定义帮助器函数。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51611170

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档