【问题标题】:Laravel use @ function inside another @ function in ViewLaravel 在 View 的另一个 @ 函数中使用 @ 函数
【发布时间】:2021-01-01 17:07:50
【问题描述】:

我想在另一个函数 (@sortablelink) 中使用一个函数 (@lang)。

@lang: 根据之前的用户输入更改本地化 @sortablelink: kysliks 可排序列 (https://github.com/Kyslik/column-sortable)

像这样:

@foreach($COLUMNS_TASK as $column => $val)
         <div class="th">
              <a href=""><p class="justify-content-center text-center">@sortablelink($val, @lang('lang.'.$val))</p></a>
         </div>
@endforeach

当我运行此代码时,我收到此错误:错误调用未定义函数 lang()

但是当我这样写的时候:

@foreach($COLUMNS_TASK as $column => $val)
         <div class="th">
              <a href=""><p class="justify-content-center text-center">@sortablelink($val)@lang('lang.'.$val)</p></a>
         </div>
@endforeach

它可以工作,但它只并排显示函数的结果,它看起来像这样:

是否可以像这样在另一个函数中使用一个函数?还是我没有看到其他解决方案?

提前致谢,祝您有美好的一天。

【问题讨论】:

    标签: php html laravel sorting localization


    【解决方案1】:

    您可以调用翻译器来获取您想要的值,如果您想将其作为第二个参数传递给 @sortablelink 指令,您可以:

    @sortablelink($val, __($val))
    
    // some ways to call the translator to get a translation
    __($val)
    trans($val)
    Lang::get($val)
    app('translator')->get($val)
    

    @lang 指令将调用翻译器并回显结果。

    Laravel 7.x Docs - Localization - Retrieving Translation Strings__@lang

    Laravel 7.x Docs - Facades - Facade Class ReferenceLang

    【讨论】:

    • 嗨!感谢您快速而有帮助的回复:D 很高兴知道这一点。我将代码更改为:“@sortablelink($val, __($val))”,但它没有给我错误消息。但是,它不会翻译成所选语言。当我在 @sortablelink() 函数之外执行 "@lang("lang.".$val)" 时,它会正确翻译所有内容.. 奇怪
    • 没关系..我不得不使用“@sortablelink($val, __("lang.".$val))”。非常感谢!
    • 确定你需要使用什么键,这只是告诉你如何使用这些功能
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-14
    • 2016-04-18
    • 1970-01-01
    • 1970-01-01
    • 2018-01-21
    相关资源
    最近更新 更多