不败君

前端萌新&初级后端攻城狮

Laravel表单自定义验证消息

Laravel表单自定义验证消息

2019-01-18 10:47:26

围观(4254)



自从工作以来,每天都在使用Laravel ,也每天都在学习Laravel。

每次遇到表单验证都翻文档,然而每次翻文档都需要看上十分钟才能写好一个验证,也许是个人原因。 不知是文档过于混乱还是个人原因。

直接上代码:

首先需要引入Validator类

use Validator;

然后将用户输入的内容赋值给变量

$input = $Request->all();

记住不能忘了给方法加入Request

然后定义规则

$rules = [
    'key1' => 'required|min:6|max:200',
    'key2' => 'required|min:2|max:10'
];

自定义消息

$message = [
    'key1.required' => '请输入key1内容',
    'key1.min' => '内容字数最少要6个',
    'key1.max' => '内容字数最多200个',
    'key2.required' => '请输入key2内容',
    'key2.min' => '署名字数最少要2个',
    'key2.max' => '署名字数最多10个'
];

然后使用Validator类里面的make方法

$validator = Validator::make($input,$rules,$message);

判断是否有不符合规则的数据 然后返回错误信息

if ($validator->fails()) {
    return redirect()
        ->back()
        ->withErrors($validator)
        ->withInput();
}

最后在视图中显示错误信息

{{ $errors->first('key1') }}
{{ $errors->first('key2') }}

完整DEMO

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Validator;

class TestController extends Controller
{
    public function index(Request $Request){
    	$input = $Request->all();

        $rules = [
            'key1' => 'required|min:6|max:200',
            'key2' => 'required|min:2|max:10'
        ];

        $message = [
            'key1.required' => '请输入key1内容',
            'key1.min' => '内容字数最少要6个',
            'key1.max' => '内容字数最多200个',
            'key2.required' => '请输入key2内容',
            'key2.min' => '署名字数最少要2个',
            'key2.max' => '署名字数最多10个'
        ];

    	$validator = Validator::make($input,$rules,$message);

    	if ($validator->fails()) {
            return redirect()
                ->back()
                ->withErrors($validator)
                ->withInput();
        }
    }
}

本文地址 : bubaijun.com/page.php?id=114

版权声明 : 未经允许禁止转载!

评论:我要评论
发布评论:
Copyright © 不败君 粤ICP备18102917号-1

不败君

首 页 作 品 微 语