#php #html #laravel #sorting #localization
#php #HTML #laravel #сортировка #локализация
Вопрос:
я хочу использовать функцию (@lang) внутри другой функции (@sortablelink).
@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
Он работает, но он отображает результаты выполнения функций только параллельно и выглядит примерно так:
Возможно ли использовать функцию внутри другой функции, подобной этой? Или здесь есть другое решение, которого я не вижу?
Заранее спасибо и хорошего дня.
Ответ №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 — Локализация — получение строк перевода __
@lang
Документы Laravel 7.x — Фасады — Ссылка на класс фасада Lang
Комментарии:
1. Привет! Спасибо за ваш быстрый и полезный ответ: D Приятно это знать. Я изменил свой код на: «@sortablelink ($val, __($ val))» и это не выдает мне сообщение об ошибке. Однако это не переводится на выбранный язык. Когда я делаю «@lang («lang.».$val)» вне функции @sortablelink (), она переводит все правильно.. странно
2. Неважно.. мне пришлось использовать «@sortablelink($val, __(«lang.».$val))». Большое вам спасибо!
3. конечно, какой бы ключ вам ни понадобился, это просто показывает вам, как использовать функции