usee/lara_scene

The repository is validator scene trait for laravel, like ThinkPHP

1.4.0 2020-07-18 11:32 UTC

This package is auto-updated.

Last update: 2024-05-18 20:06:05 UTC


README

因为 Laravel 的验证器没有类似于 ThinkPHP 的场景验证,所以写个了 Trait 来代替

使用方法

composer require usee/lara_scene

成功引入 Composer 后,在 Request 头部加入它,然后在 TestRequest 的中增加 AllRulesAllMessagesScenes 三个属性,类似于 ThinkPHP

如下:

<?php

namespace App\Http\Requests;

use Illuminate\Foundation\Http\FormRequest;
use Usee\LaraScene\Scene; // 引入 Composer 包

class TestRequest extends FormRequest
{
    use Scene; // 使用它

    // 定义 allRules
    protected $allRules = [
        'username'  => 'required|alpha_dash',
        'age'       => 'required|integer|min:0',
        'page'      => 'integer|min:1',
        'rows'      => 'integer|min:10'
    ];

    // 定义 allMessages
    protected $allMessages = [
        'username.required'     => '用户名称必须填写',
        'username.alpha_dash'   => '用户名称禁止含有特殊字符',
        'age.required'          => '年龄必须填写',
        'age.integer'           => '年龄只能为整数',
        'age.min'               => '年龄最小只能为0',
        'page.integer'          => '页码只能为整数',
        'page.min'              => '页码最小只能为1',
        'rows.integer'          => '每页显示条数只能为整数',
        'rows.min'              => '每页显示条数最小为10条',
    ];

    // 定义 scenes
    protected $scenes = [
        'index' => ['page', 'rows'],
        'create'=> ['username', 'age']
    ];

    /**
     * Determine if the user is authorized to make this request.
     *
     * @return bool
     */
    public function authorize()
    {
        return true;
    }
}