Laravel Collective Formbuilder 标签本地化

Flo*_*ris 2 php forms laravel laravelcollective

我刚开始使用 Laravel Collective Form Service Provider/FormBuilder。

我使用这个自定义组件来渲染带有标签的文本字段。问题是我试图用 __() 函数翻译它的标签,但是 $name 变量在非常晚的阶段从 first_name 转换为 First Name。

<div class="control-group">
    {{ Form::label($name, null, ['class' => 'group__label']) }}
    {{ Form::text($name, $value, array_merge(['class' => 'control-
    group__control'], $attributes)) }}
</div>
Run Code Online (Sandbox Code Playgroud)

我不能简单地这样做:

{{ Form::label(__($name), null, ['class' => 'group__label']) }}
Run Code Online (Sandbox Code Playgroud)

同样,因为它获得 first_name,然后将其转换为 First Name。我的 nl.json 文件包含 First Name 的翻译,而不是 first_name。

如果我将 _() 转换函数添加到 FormBuilder 中标签方法的最后一条规则,那么它解决了我的问题。但是,当然,我不想修改供应商代码!

 return $this->toHtmlString('<label for="' . $name . '"' . $options . '>' . __($value) . '</label>');
Run Code Online (Sandbox Code Playgroud)

所以。如何解决这个问题?不知何故,我需要创建一个自定义的 FormBuilder->label() 方法吗?

Ale*_*nin 5

使用trans()帮手:

{{ Form::label(trans($name), null, ['class' => 'group__label']) }}
Run Code Online (Sandbox Code Playgroud)