发布
社区首页 >问答首页 >在laravel中翻译输入字段的名称

在laravel中翻译输入字段的名称
EN

Stack Overflow用户
提问于 2015-06-06 21:48:48
回答 2查看 1.9K关注 0票数 2

我正在用Laravel创建一个应用程序,我被困在翻译部分。

我有一个表单字段,如下所示:

代码语言:javascript
代码运行次数:0
复制
{!! Form::password('password') !!}

当用户将字段留为空白时,我会得到以下错误:

密码字段是必需的。

这对英文版来说是正确的。

但是当我把我的申请改为荷兰语时,我想看看

Het wachtwoord是verplicht

我已经将其添加到翻译文件中,但是由于这个发送将用于每个字段,例如用户名和电子邮件,所以它也使用字段的名称。

所以现在我收到的消息是'Het password veld is verplicht‘而不是'Het wachtwoord veld is verplicht’

我知道我不应该更改输入字段的名称,因为我的控制器希望密码字段具有名称密码,这是创建用户的代码,因为您可以看到它使用$data->password

代码语言:javascript
代码运行次数:0
复制
public function createUser($data)
{
    /* store the users email in variable */
    $email = $data->email;

    /* Creates a new user in the database with the filled in email and password */
    $this->create([
        'email' => $email,
        'password' => \Hash::make($data->password)
    ]);
}

我的问题是如何以所要求的语言获取字段的名称?因此,我仍然希望能够使用$data->password,但我也希望以正确的语言查看字段名。

有人知道该怎么做吗?

备注我知道如何在laravel中使用翻译选项,我不想得到这样的回答:

要在刀片中翻译使用@lang('translatefile.name')

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-06-06 23:50:43

正如haakym在评论中所提到的那样,当我查找setAttributeNames方法时,我发现了一些解决问题的方法。

在validation.php底部的laravel 5中,有一个名为attributes的数组。

在数组中,可以提供名称属性的转换。

这实际上是一个非常简单的解决方案,但我花了几个小时才找到答案。

谢谢你的建议,因为它帮助我找到我的答案!

票数 5
EN

Stack Overflow用户

发布于 2015-06-07 10:04:22

使用验证器

如果直接使用验证器进行验证,则可以这样做:

代码语言:javascript
代码运行次数:0
复制
// set up the validator
$validator = Validator::make(Input::all(), $rules);

// set the attribute names
$validator->setAttributeNames(['password' => 'wachtwoord']);

或者,我相信您可以在创建验证器实例时添加它作为最后的参数。见文档:construct

使用请求

如果使用请求进行验证,则可以在请求中覆盖getValidatorInstance

代码语言:javascript
代码运行次数:0
复制
protected function getValidatorInstance()
{
  $validator = parent::getValidatorInstance();

  $validator->setAttributeNames([
    'password' => 'wachtwoord'
  ]);

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

https://stackoverflow.com/questions/30687911

复制
相关文章

相似问题

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