我正在尝试使用"language > {language} > validation.php“中的验证属性来替换:属性名称(输入名称),以便正确读取名称(例如: first_name > First name)。它看起来很容易使用,但是验证器不会显示“好名字”。
我有这个:
'attributes' => array(
'first_name' => 'voornaam'
, 'first name' => 'voornaam'
, 'firstname' => 'voornaam'
);
用于显示错误:
@if($errors->has())
<ul>
@foreach ($errors->all() as $error)
<li class="help-inline errorColor">{{ $error }}</li>
@endforeach
</ul>
@endif
以及控制器中的验证:
$validation = Validator::make($input, $rules, $messages);
$messages阵列:
$messages = array(
'required' => ':attribute is verplicht.'
, 'email' => ':attribute is geen geldig e-mail adres.'
, 'min' => ':attribute moet minimaal :min karakters bevatten.'
, 'numeric' => ':attribute mag alleen cijfers bevatten.'
, 'url' => ':attribute moet een valide url zijn.'
, 'unique' => ':attribute moet uniek zijn.'
, 'max' => ':attribute mag maximaal :max zijn.'
, 'mimes' => ':attribute moet een :mimes bestand zijn.'
, 'numeric' => ':attribute is geen geldig getal.'
, 'size' => ':attribute is te groot of bevat te veel karakters.'
);
谁能告诉我我哪里做错了。我希望在属性数组(language)中将:属性名称替换为“不错的名称”。
谢谢!
编辑:
我注意到问题是我从来没有为我的Laravel项目设置默认语言。当我将语言设置为'NL‘时,上面的代码可以工作。但是,当我设置语言时,该语言将出现在url中。我更希望不是这样。
所以我的下一个问题是:有没有可能从url中删除语言,或者设置默认语言,这样它就不会出现在那里?
发布于 2013-12-17 19:34:03
是的,你所说的“好名字”属性在几个月前是一个真正的“问题”。希望这个功能现在是implemented,并且使用起来非常简单。
为了简单起见,我将这两个选项分开来解决这个问题:
您现在可以在 Validator 实例上调用 setAttributeNames。
您现在可以在验证器实例上调用setAttributeNames。
这是完全有效的,如果你检查source code,你会看到
公共函数setAttributeNames(数组$attributes) { $this->customAttributes = $attributes;setAttributeNames $this;}
因此,要以这种方式使用,请参阅以下简单的示例:
$niceNames =数组( 'first_name‘=>’名字‘);$validator =验证器::make(Input::all(),$rules);$validator->setAttributeNames($niceNames);
资源
在Github上有一个非常棒的资源库,里面有很多语言包。你一定要去看看。
希望这能有所帮助。
发布于 2016-01-19 23:15:28
此特定问题的正确答案是转到您的应用程序/lang文件夹并编辑validation.php文件。在文件的底部有一个名为attributes的数组
/*
|--------------------------------------------------------------------------
| Custom Validation Attributes
|--------------------------------------------------------------------------
|
| The following language lines are used to swap attribute place-holders
| with something more reader friendly such as E-Mail Address instead
| of "email". This simply helps us make messages a little cleaner.
|
*/
'attributes' => array(
'username' => 'The name of the user',
'image_id' => 'The related image' // if it's a relation
),
所以我相信这个数组是专门用来定制这些属性名称的。
发布于 2016-03-22 22:42:54
从Laravel 5.2开始你可以...
public function validForm(\Illuminate\Http\Request $request)
{
$rules = [
'first_name' => 'max:130'
];
$niceNames = [
'first_name' => 'First Name'
];
$this->validate($request, $rules, [], $niceNames);
// correct validation
https://stackoverflow.com/questions/17047116
复制相似问题