laravel 自定义表单请求验证类 提示信息自定义
<?php
namespace App\Http\Requests\User;
use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Support\Facades\Route;
use Illuminate\Support\Str;
class UserRequest extends FormRequest
{
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
// 获取路由控制器名称
$action = Str::after(Route::currentRouteAction(), '@');
switch ($action) {
case 'saveUserInfo':
return [
'name' => 'required|string',
'age' => 'required|integer',
'phone' => 'required|string'
];
case 'getUserInfo':
return [];
default:
return [];
}
}
public function messages()
{
$action = Str::after(Route::currentRouteAction(), '@');
$strings_key = [
'saveUserInfo.name' => '用户名',
'saveUserInfo.age' => '年龄',
'saveUserInfo.phone' => '手机号',
];
$strings_val = [
'required' => '为必填项',
'string' => '字符串类型'
];
$rules = $this->rules();
foreach ($rules as $ruleKey => $ruleVal) {
// 分割成数组
$new_arr = explode('|', $ruleVal);
foreach ($new_arr as $val) {
$head = strstr($val, ':', true);
if ($head) {
$val = $head;
}
$array[$ruleKey . '.' . $val] = $strings_key[$action . '.' . $ruleKey] . $strings_val[$val];
}
}
return $array;
}
}
返回示例:(字段名称和上边代码不一致,只是示例)