Laravel 在视图中的另一个@函数中使用@函数

Laravel use @ function inside another @ function in View

我想在另一个函数 (@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

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

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

在此先致谢,祝您有愉快的一天。

你可以调用翻译器来获取你想要的值,如果你想将它作为第二个参数传递给 @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 Reference Lang