诚城的成长 诚城的成长
首页
  • 高数基础
  • 数一

    • 高等数学
    • 线性代数
    • 概率论与数理统计
  • 820

    • 数据结构
    • 计算机操作系统
  • 英一

    • 单词
    • 语法
    • 阅读理解
    • 作文
  • 政治

    • 马克思主义基本原理
    • 毛泽东
    • 近代史
    • 思修
    • 时事
  • openpose
  • html5
  • css3
  • UI

    • Tailwind Css
    • Element-Plus
    • UniApp
  • 框架

    • Vue3
  • 拓展包

    • 包管理工具
    • 包开发
  • 开发语言

    • C语言
    • PHP
    • Phyton
  • 框架

    • Laravel
  • 会计

    • 初级经济法基础
    • 初级会计实务
  • 软考

    • 信息系统项目管理师
  • 博客

    • vitepress
    • vuepress
  • manim
  • git
  • vsCode
  • latex
  • docker
  • axios
  • vim
  • mac
  • Jetbrains

    • phpstorm
    • clion
突发奇想
GitHub (opens new window)

诚城

我有N个梦想……
首页
  • 高数基础
  • 数一

    • 高等数学
    • 线性代数
    • 概率论与数理统计
  • 820

    • 数据结构
    • 计算机操作系统
  • 英一

    • 单词
    • 语法
    • 阅读理解
    • 作文
  • 政治

    • 马克思主义基本原理
    • 毛泽东
    • 近代史
    • 思修
    • 时事
  • openpose
  • html5
  • css3
  • UI

    • Tailwind Css
    • Element-Plus
    • UniApp
  • 框架

    • Vue3
  • 拓展包

    • 包管理工具
    • 包开发
  • 开发语言

    • C语言
    • PHP
    • Phyton
  • 框架

    • Laravel
  • 会计

    • 初级经济法基础
    • 初级会计实务
  • 软考

    • 信息系统项目管理师
  • 博客

    • vitepress
    • vuepress
  • manim
  • git
  • vsCode
  • latex
  • docker
  • axios
  • vim
  • mac
  • Jetbrains

    • phpstorm
    • clion
突发奇想
GitHub (opens new window)
  • 入门指南
  • passport

  • 表单验证

    • 表单验证设置
      • BaseReqeust
      • UserRequest
      • 翻译文件
    • 自定义规则
  • 模型与迁移

  • 中间件
  • event and listen
  • trait
  • artisan 命令
  • laravel9
  • 表单验证
诚城
2022-06-13
目录

表单验证设置原创

# BaseReqeust

点击查看
<?php

namespace App\Http\Requests;

use App\Exceptions\Api\AppException;
use Illuminate\Contracts\Validation\Validator;
use Illuminate\Foundation\Http\FormRequest;

class BaseRequest extends FormRequest
{
    /**
     * 表示验证器是否应在第一个规则失败时停止。
     *
     * @var bool
     */
    protected $stopOnFirstFailure = true;
    /**
     * Determine if the user is authorized to make this request.
     *
     * @return bool
     */
    public function authorize()
    {
        return true;
    }
    
    // 自定义 验证错误 返回第一条错信息, 以及返回时的 状态码
    protected function failedValidation(Validator $validator)
    {
        throw new AppException($validator->errors()->first(), 422);
    }
}

# UserRequest

点击查看

<?php

namespace App\Http\Requests\Users;

use App\Http\Requests\BaseRequest;
use Illuminate\Foundation\Http\FormRequest;

class UserRegisterRequest extends BaseRequest
{
    /**
     * Get the validation rules that apply to the request.
     *
     * @return array<string, mixed>
     */
    public function rules()
    {
        return [
            'email' => 'required|email|unique:users|max:255',
        ];
    }


    public function messages()
    {
        return [
            'captcha' => '验证码错误',
            'unique' => '此:attribute已注册',
        ];
    }
    //使用语言包后,那些不会翻译的英语内容,在这定义
    public function attributes()
    {
        return [
            'name' => '姓名',
            'password' => '密码',
        ];
    }
}

# 翻译文件

在 lang\zh-CN下建立对应的翻译文件,如:

  • validation # 用于验证相关的内容翻译
    ::: datails
    <?php
    
    return [
    
        /*
        |--------------------------------------------------------------------------
        | Validation Language Lines
        |--------------------------------------------------------------------------
        |
        | The following language lines contain the default error messages used by
        | the validator class. Some of these rules have multiple versions such
        | as the size rules. Feel free to tweak each of these messages here.
        |
        */
    
        'accepted' => 'The :attribute must be accepted.',
        'accepted_if' => 'The :attribute must be accepted when :other is :value.',
        'active_url' => 'The :attribute is not a valid URL.',
        'after' => 'The :attribute must be a date after :date.',
        'after_or_equal' => 'The :attribute must be a date after or equal to :date.',
        'alpha' => 'The :attribute must only contain letters.',
        'alpha_dash' => 'The :attribute must only contain letters, numbers, dashes and underscores.',
        'alpha_num' => 'The :attribute must only contain letters and numbers.',
        'array' => 'The :attribute must be an array.',
        'before' => 'The :attribute must be a date before :date.',
        'before_or_equal' => 'The :attribute must be a date before or equal to :date.',
        'between' => [
            'array' => 'The :attribute must have between :min and :max items.',
            'file' => 'The :attribute must be between :min and :max kilobytes.',
            'numeric' => 'The :attribute must be between :min and :max.',
            'string' => ':attribute长度必须在:min和:max之间.',
        ],
        'boolean' => 'The :attribute field must be true or false.',
        'confirmed' => 'The :attribute confirmation does not match.',
        'current_password' => 'The password is incorrect.',
        'date' => 'The :attribute is not a valid date.',
        'date_equals' => 'The :attribute must be a date equal to :date.',
        'date_format' => 'The :attribute does not match the format :format.',
        'declined' => 'The :attribute must be declined.',
        'declined_if' => 'The :attribute must be declined when :other is :value.',
        'different' => 'The :attribute and :other must be different.',
        'digits' => 'The :attribute must be :digits digits.',
        'digits_between' => 'The :attribute must be between :min and :max digits.',
        'dimensions' => 'The :attribute has invalid image dimensions.',
        'distinct' => 'The :attribute field has a duplicate value.',
        'email' => ':attribute 格式不正确.',
        'ends_with' => 'The :attribute must end with one of the following: :values.',
        'enum' => 'The selected :attribute is invalid.',
        'exists' => 'The selected :attribute is invalid.',
        'file' => 'The :attribute must be a file.',
        'filled' => 'The :attribute field must have a value.',
        'gt' => [
            'array' => 'The :attribute must have more than :value items.',
            'file' => 'The :attribute must be greater than :value kilobytes.',
            'numeric' => 'The :attribute must be greater than :value.',
            'string' => 'The :attribute must be greater than :value characters.',
        ],
        'gte' => [
            'array' => 'The :attribute must have :value items or more.',
            'file' => 'The :attribute must be greater than or equal to :value kilobytes.',
            'numeric' => 'The :attribute must be greater than or equal to :value.',
            'string' => 'The :attribute must be greater than or equal to :value characters.',
        ],
        'image' => ':attribute只能为图片.',
        'in' => 'The selected :attribute is invalid.',
        'in_array' => 'The :attribute field does not exist in :other.',
        'integer' => 'The :attribute must be an integer.',
        'ip' => 'The :attribute must be a valid IP address.',
        'ipv4' => 'The :attribute must be a valid IPv4 address.',
        'ipv6' => 'The :attribute must be a valid IPv6 address.',
        'json' => 'The :attribute must be a valid JSON string.',
        'lt' => [
            'array' => 'The :attribute must have less than :value items.',
            'file' => 'The :attribute must be less than :value kilobytes.',
            'numeric' => 'The :attribute must be less than :value.',
            'string' => 'The :attribute must be less than :value characters.',
        ],
        'lte' => [
            'array' => 'The :attribute must not have more than :value items.',
            'file' => 'The :attribute must be less than or equal to :value kilobytes.',
            'numeric' => 'The :attribute must be less than or equal to :value.',
            'string' => 'The :attribute must be less than or equal to :value characters.',
        ],
        'mac_address' => 'The :attribute must be a valid MAC address.',
        'max' => [
            'array' => 'The :attribute must not have more than :max items.',
            'file' => 'The :attribute must not be greater than :max kilobytes.',
            'numeric' => ':attribute不得大于:max.',
            'string' => ':attribute长度不得超过:max位.',
        ],
        'mimes' => 'The :attribute must be a file of type: :values.',
        'mimetypes' => 'The :attribute must be a file of type: :values.',
        'min' => [
            'array' => 'The :attribute must have at least :min items.',
            'file' => 'The :attribute must be at least :min kilobytes.',
            'numeric' => ':attribute不得小于:min.',
            'string' => ':attribute长度不得少于:min位.',
        ],
        'multiple_of' => 'The :attribute must be a multiple of :value.',
        'not_in' => 'The selected :attribute is invalid.',
        'not_regex' => 'The :attribute format is invalid.',
        'numeric' => 'The :attribute must be a number.',
        'password' => [
            'letters' => 'The :attribute must contain at least one letter.',
            'mixed' => 'The :attribute must contain at least one uppercase and one lowercase letter.',
            'numbers' => 'The :attribute must contain at least one number.',
            'symbols' => 'The :attribute must contain at least one symbol.',
            'uncompromised' => 'The given :attribute has appeared in a data leak. Please choose a different :attribute.',
        ],
        'present' => 'The :attribute field must be present.',
        'prohibited' => 'The :attribute field is prohibited.',
        'prohibited_if' => 'The :attribute field is prohibited when :other is :value.',
        'prohibited_unless' => 'The :attribute field is prohibited unless :other is in :values.',
        'prohibits' => 'The :attribute field prohibits :other from being present.',
        'regex' => 'The :attribute format is invalid.',
        'required' => ':attribute不能为空.',
        'required_array_keys' => 'The :attribute field must contain entries for: :values.',
        'required_if' => 'The :attribute field is required when :other is :value.',
        'required_unless' => 'The :attribute field is required unless :other is in :values.',
        'required_with' => 'The :attribute field is required when :values is present.',
        'required_with_all' => 'The :attribute field is required when :values are present.',
        'required_without' => 'The :attribute field is required when :values is not present.',
        'required_without_all' => 'The :attribute field is required when none of :values are present.',
        'same' => 'The :attribute and :other must match.',
        'size' => [
            'array' => 'The :attribute must contain :size items.',
            'file' => 'The :attribute must be :size kilobytes.',
            'numeric' => 'The :attribute must be :size.',
            'string' => 'The :attribute must be :size characters.',
        ],
        'starts_with' => 'The :attribute must start with one of the following: :values.',
        'doesnt_start_with' => 'The :attribute may not start with one of the following: :values.',
        'string' => 'The :attribute must be a string.',
        'timezone' => 'The :attribute must be a valid timezone.',
        'unique' => ':attribute已被使用.',
        'uploaded' => 'The :attribute failed to upload.',
        'url' => ':attribute格式不正确.',
        'uuid' => 'The :attribute must be a valid UUID.',
    
        /*
        |--------------------------------------------------------------------------
        | Custom Validation Language Lines
        |--------------------------------------------------------------------------
        |
        | Here you may specify custom validation messages for attributes using the
        | convention "attribute.rule" to name the lines. This makes it quick to
        | specify a specific custom language line for a given attribute rule.
        |
        */
    
        'custom' => [
            'attribute-name' => [
                'rule-name' => 'custom-message',
            ],
        ],
    
        /*
        |--------------------------------------------------------------------------
        | Custom Validation Attributes
        |--------------------------------------------------------------------------
        |
        | The following language lines are used to swap our attribute placeholder
        | with something more reader friendly such as "E-Mail Address" instead
        | of "email". This simply helps us make our message more expressive.
        |
        */
    
        'attributes' => [
            'email'=>' 邮箱地址',
            'phone'=>' 手机号码',
            'password'=>'密码',
            'url'=>'链接地址',
    
        ],
    
    ];
    
    
    
    :::
上次更新: 2022/08/23, 18:12:45
错误总结
自定义规则

← 错误总结 自定义规则→

Theme by Vdoing | Copyright © 2022-2022 carveybunt | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式
×
×

特别申明:

本站所有内容均为个人理解或转载,如有不当之处,敬请大佬指导!