怎么把laravel的表单验证信息改成中文
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么把laravel的表单验证信息改成中文相关的知识,希望对你有一定的参考价值。
参考技术A validator支持自定义error 消息的1
2
3
4
5
6
7
8
9
$messages = [
'required' => '字段 :attribute 必填.',
];
$rules = [
'email' => 'required'
]
$validator = Validator::make($input, $rules, $messages);
然后当email字段未通过required验证的时候,返回的错误信息就是"字段email必填"
Laravel - 错误信息没有转化为实际的错误信息,以“验证”开头。
【中文标题】Laravel - 错误信息没有转化为实际的错误信息,以“验证”开头。【英文标题】:Laravel - Error messages not translating to actual error message, start with "validation." 【发布时间】:2014-11-18 05:08:37 【问题描述】:我在尝试在 Laravel 中进行表单验证时遇到问题,这很奇怪,因为它通常可以正常工作。
在我的用户模型中,我创建了验证规则:
public static $rules = array(
'firstname'=>'required|min:2|alpha',
'lastname'=>'required|min:2|alpha',
'email'=>'required|email|unique:users',
'password'=>'required|alpha_num|between:8,12|confirmed',
'password_confirmation'=>'required|alpha_num|between:8,12',
'telephone'=>'required|between:10,12',
'admin'=>'integer'
);
在我的用户控制器中,我仅在验证通过时才定义操作,否则用户将被重定向并返回错误:
public function postCreate()
$validator = Validator::make(Input::all(), User::$rules);
if ($validator->passes())
$user = new User;
$user->firstname = Input::get('firstname');
$user->lastname = Input::get('lastname');
$user->email = Input::get('email');
$user->password = Hash::make(Input::get('password'));
$user->telephone = Input::get('telephone');
$user->save();
return Redirect::to('users/signin')
->with('message', 'Thank you for creating a new account. Please sign in.');
return Redirect::to('users/create-account')
->with('message', 'Something went wrong')
->withErrors($validator)
->withInput();
出现以下错误:
如果存在错误,我会在视图中显示错误:
@if($errors->has())
<div id="form-errors">
<p>The following errors have occurred:</p>
<ul>
@foreach($errors->all() as $error)
<li> $error </li>
@endforeach
</ul>
</div><!-- end form-errors -->
@endif
我遇到的问题是提交空表单时的输出是:
validation.required
validation.required
validation.required
validation.required
validation.required
validation.required
代替:
The firstname field is required.
The lastname field is required.
The email field is required.
The password field is required.
The password confirmation field is required.
The telephone field is required.
如果有人能提出为什么会发生这种情况或我缺少什么,那么将不胜感激!
【问题讨论】:
在 Laravel 5 中遇到同样的问题,不知道为什么... 我也是!在 Laravel 5 中,但仅限于某些环境/服务器 @Lloople 很伤心,实际上让我离开了 Laravel... 还不错,因为我现在正在学习更多的 Javascript :) 如果你找到了答案,请发布它? @IndigoIdentity 我的问题是我用 Config::set('app', $my_config_array) 覆盖了默认设置,因此我失去了 app.language 值。 【参考方案1】:如果它之前对您有用,那么您应该检查您是否在 app\lang\en\validation.php
中定义了消息,或者您碰巧更改了应用程序的 区域设置 并且没有为其定义消息.有很多可能性。
【讨论】:
您好,谢谢您的回复。我正在使用在validation.php 文件中确实定义的默认错误消息。真的很奇怪,一切似乎都是 100% 正确的,但验证并未将错误转化为消息?【参考方案2】:我遇到了类似的问题,问题是我不小心删除了 资源/lang/en/validation.php
【讨论】:
【参考方案3】:当我将我的语言环境和备份语言环境都设置为在 app.php 中没有验证文件的语言环境时,我遇到了类似的问题。尝试将备份语言环境设置为 en 或您确定存在的语言环境。
【讨论】:
【参考方案4】:我遇到了这个问题。
检查lang
目录,应该放在resource
目录下。
我将 lang 目录拖到另一个目录,然后我得到了和你一样的验证响应。修复只是将其移回资源目录。
【讨论】:
【参考方案5】:此问题的解决方案检查您的lang
目录是否存在于/resources
目录下。
【讨论】:
【参考方案6】:我有同样的问题,这里是解决这个问题的方法
检查resources/lang/en/validation.php
文件是否存在
或
在 config\app.php 中将您的语言环境和 fallback_locale 更改为“en”
'locale' => 'en',
...
...
'fallback_locale' => 'en',
...
然后运行,php artisan config:cache
【讨论】:
以上是关于怎么把laravel的表单验证信息改成中文的主要内容,如果未能解决你的问题,请参考以下文章