Laravel 验证器

Posted 安果移不动

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Laravel 验证器相关的知识,希望对你有一定的参考价值。

官方地址:表单验证 |《Laravel 8 中文文档 8.5》| Laravel China 社区

代码

<?php
/**
 * @Description
 * @Date 2021-12-19 21:44
 */

namespace Modules\\Admin\\Http\\Controllers\\v1;


//集成核心Controller
use Illuminate\\Http\\Request;
use Illuminate\\Routing\\Controller;
use Illuminate\\Support\\Facades\\Validator;

class IndexController extends Controller


    public function test(Request $request)
    
        $validator = Validator::make($request->all(), [
            'title' => 'required',
            'body' => 'required',
        ]);

        if ($validator->fails()) 
            return 1111;
        

        return "hello world";

        // 博客文章验证通过...
    



效果

 打印错误信息

 也可以只打出来message

  dd($validator->errors()->messages());

我是第一次学习laravel。从那些复杂的控制,但是又从这些简介的dd语法中,可以猜到。

他以后将会是我的一把利刃。

array:2 [
  "title" => array:1 [
    0 => "The title field is required."
  ]
  "body" => array:1 [
    0 => "The body field is required."
  ]
]

验证成功是进入helloWord

 错误信息也非常的明显有一个缺点

The title field is required.

我们如何自定义错误消息返回呢

    public function test(Request $request)
    
        $validator = Validator::make($request->all(), [
            'title' => 'required',
            'body' => 'required',
        ], ['title.required' => "请输入标题"]);

        if ($validator->fails()) 
            return $validator->errors()->messages()['title'][0];
        

        return "hello world";

        // 博客文章验证通过...
    

 对长度进行限制

<?php
/**
 * @Description
 * @Date 2021-12-19 21:44
 */

namespace Modules\\Admin\\Http\\Controllers\\v1;


//集成核心Controller
use Illuminate\\Http\\Request;
use Illuminate\\Routing\\Controller;
use Illuminate\\Support\\Facades\\Validator;

class IndexController extends Controller


    public function test(Request $request)
    
        $validator = Validator::make($request->all(), [
            'title' => 'required|max:2',
            'body' => 'required',
        ], ['title.required' => "请输入标题", 'title.max' => "标题最大长度不能超过2个字符"]);

        if ($validator->fails()) 
            return $validator->errors()->messages()['title'][0];
        

        return "hello world";

        // 博客文章验证通过...
    



 

以上是关于Laravel 验证器的主要内容,如果未能解决你的问题,请参考以下文章

Laravel:如何在控制器的几种方法中重用代码片段

为啥我的验证器没有在 Laravel 中验证?

Laravel 8 视图不更新路由

Laravel 5.8 有条件地插入 sql 片段

Laravel - 身份验证重定向到带有 302 找到代码的页面

Laravel 验证登录