Laravel表单验证字段映射

2021/7/9 23:12:20

本文主要是介绍Laravel表单验证字段映射,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

以下程序是一个验证文章的标题和内容字段的验证类。

namespace App\Http\Requests;

use Illuminate\Foundation\Http\FormRequest;

class ArticleRequest extends FormRequest
{

    public function authorize()
    {
        return true;
    }

    public function rules()
    {
        return [
           'title' => 'required|unique:posts|max:255',
            'body' => 'required',
        ];
    }

    public function messages()
    {
        return [
            'title.required'    => '标题必填',
            'title.unique'      => '标题已存在',
            'title.max'         => '标题长度不能超过:max',
            ‘body.required’     => '内容必填',
        ];
    }
}

验证的字段是title和body。我们自定义了错误提醒。如标题字段是必须的,未填的话,会提示「标题必填」。如果标题长度超过了定义的255长度,则会提示「标题内容不能超过255」。

但是,随着验证字段越来越多,验证的规则越来越多,应该有这么一个功能,对title字段做映射,映射成标题,那么就不用每次验证「title」字段时都要写上「标题」与之匹配。

Laravel也的确提供了这么个功能,下面分享给大家。分为2种方式:

1.控制器中

$this->validate($request,[
           'title' => 'required|unique:posts|max:255',
            'body' => 'required',
        ], [
            'title.required'    => ':attribute必填',
            'title.unique'      => ':attribute已存在',
            'title.max'         => ':attribute长度不能超过:max',
            ‘body.required’     => ':attribute必填',
        ], [
                'title'   => '标题',
                'body'     => '内容',
            ]);

2.验证类中

namespace App\Http\Requests;

use Illuminate\Foundation\Http\FormRequest;

class OrderRequest extends FormRequest
{
		...
    public function messages()
    {
        return [
            'title.required'    => ':attribute必填',
            'title.unique'      => ':attribute已存在',
            'title.max'         => ':attribute长度不能超过:max',
            ‘body.required’     => ':attribute必填',
        ];
    }
    public function attributes()
    {
        return [
            'title' =>  '标题',
            'body'  =>  '内容',
        ];
    }
}


这篇关于Laravel表单验证字段映射的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程