我可以做这样的事情来验证控制器上的东西。
$this->validate($request,[
'myinput'=>'regex:some pattern'
]);
并且这个的输出将是这样的
myinput格式无效。
我想要的是展示我自己的信息
只允许一些模式
我如何在laravel上实现这一目标?
答案 0 :(得分:2)
您可以将自定义验证消息添加到语言文件,例如resources/lang/en/validation.php
。
另一种方法,从docs:
'custom' => [
'email' => [
'regex' => 'Please use your company email address to register. Webmail services are not permitted.'
],
'lawyer_legal_fields' => [
'number_of_areas' => 'You\'re not allowed to select so many practice areas'
],
],
您可以通过覆盖messages方法来自定义表单请求使用的错误消息。
public function messages()
{
return [
'title.required' => 'A title is required',
'body.required' => 'A message is required',
];
}
https://laravel.com/docs/5.3/validation#customizing-the-error-messages
答案 1 :(得分:1)
有许多技术可以自定义验证程序消息。
看起来像这样
$validate = Validator::make($request->all(), [
'name'=>'required|max:120',
'email'=>'required|email|unique:users,email,'.$id,
'password'=>'nullable|min:6|confirmed'
],
[
'name.required' => 'User name must not be empty!',
'name.max' => 'The maximun length of The User name must not exceed :max',
'name.regex' => 'Use name can not contain space',
'email.required' => 'Email must not be empty!',
'email.email' => 'Incorrect email address!',
'email.unique' => 'The email has already been used',
'password.min' => 'Password must contain at least 6 characters',
'password.confirmed' => 'Failed to confirm password'
]);
我最喜欢这种方法。它提供了有用的工具,用于生成 Controller,Models,Views,API等。
然而,创建并更新Request
文件。其中请求文件正在使用Illuminate\Foundation\Http\FormRequest
,其中此类从Illuminate\Http\Request
扩展。
这意味着我们可以访问此文件中的 Request 并对传入的请求进行验证
这是我最感兴趣的部分
生成的请求文件包含规则功能,例如,如此<
public function rules() {
return [
'name' => 'required|unique:flights,name|max:20',
'airline_id' => 'nullable|numeric|digits_between:1,10',
];
}
此函数实际返回验证器规则并根据输入验证它们。
您可以从 Illuminate \ Foundation \ Http \ FormRequest 覆盖函数消息,以根据需要自定义错误消息:
public function messages()
{
return [
'required' => "This field is required",
\\... etc
];
}
尽管如此,您可以使用生成的请求文件执行许多操作,只需从项目中引用供应商文件夹vendor/laravel/framework/src/Illuminate/Foundation/Http
中的文件即可。
这是Infyom github链接InfyOmLabs - laravel-generator