自定义laravel表单请求验证类中文错误提示(UserRequest共用一个rules())

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;
    }
}

返回示例:(字段名称和上边代码不一致,只是示例)
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

南宋x

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值