Laravel8 快速入门教程十四 - 数据验证层提取

114 阅读2分钟

本文由 简悦 SimpRead 转码, 原文地址 juejin.cn

「这是我参与 11 月更文挑战的第 7 天,活动详情查看:2021 最后一次更文挑战

背景

  1. 项目用 Thinkphp5.1 开发完成,对于各种关系模型的查询 Tp 处理起来还是比较吃力的。
  2. 作为努力奔跑的程序员,下一个项目我们决定用 Lavarel 进行开发。
  3. 因为掘金粑粑有奖励,所以把部分 gitee 上的私有的部分学习笔记整理一下。

说明

Laravel 属于中大型框架,各种功能都被内置了,而且 Laravel 官方的文档看的我是云里雾里的,对于新手感觉不是很友好。所以此系列文章只适合有 PHP 基础。想快速入门搞开发的

正文

上一篇文章我们定义了基础校验器,这里我们定义子类的方法。 创建文件

<?php

namespace app\Http\Validate\Front;
use App\Http\Validate\BaseValidate;

class BlogAdd extends BaseValidate{
    /**
     * 定义验证规则
     */

    protected $rules = [

        'title'=>'required|string',

        'content'=>'required|string',

        'author_id'=>'required|integer',

        'category_id'=>'required|integer',

        'remarks'=>'string'

    ];



    /**
     * 定义提示信息
     */

    protected $message = [

        'title.required'=>'标题必须填写',

        'title.string'=>'标题中含有非法文字',

        'content.required'=>'内容必须填写',

        'content.string'=>'内容中含有非法文字',

        'author_id.required'=>'作者必须选择',

        'author_id.integer'=>'作者编号不正确',

        'category_id.required'=>'类别必须选择',

        'category_id.integer'=>'类别编号不正确'

    ];

}
复制代码

子类中补充了父类做数据校验所需要的验证规则 提示信息两个属性。此时获取数据的方法,规则,提示信息都齐全了。可以调用方法对数据进行验证了。

此时我们把之前的对于博客的存储方法进行重构,具体的代码

    /**
     * 保存数据
     */
    public function store(Request $request){
        $blogService = new BlogService();

        //接受并校验参数
        $data = (new BlogAddValidate())->getDateByRules($request->all());
        $res = $blogService->add($data);

        return  $this->success($res);
    }
复制代码

就在此刻 之前的一堆黑压压的代码,被一句调用搞定。关键是后续所有验证规则,只要创建验证器以后,所有的数据都能通过一句代码就完成了 校验 获取数据的操作。非常的便捷。