NavRequest.php 2.3 KB
<?php

namespace App\Http\Requests\Bside\Nav;

use App\Http\Requests\Scene;
use Illuminate\Foundation\Http\FormRequest;

/**
 * 导航 c端的 nav
 * @author:dc
 * @time 2023/5/11 15:20
 * Class NavRequest
 * @package App\Http\Requests\Bside\Nav
 */
class NavRequest extends FormRequest
{
    use Scene;

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

    /**
     * Get the validation rules that apply to the request.
     *
     * @return array
     */
    public function rules()
    {
        $rule = [
            'pid'   =>  ['required','integer','gte:0'],
            'name'   =>  ['required','max:100'],
            'location'   =>  ['required','in:header,footer'],
            'url'   =>  ['required','max:200'],
            'status'   =>  ['required','in:0,1'],
            'target'   =>  ['required','in:0,1'],
            'sort'   =>  ['required','integer','gte:0']
        ];

        // 修改
        if($this->isScene(static::$UPDATE)){
            $rule['id'] = ['required','integer'];
        }

        // 删除
        if($this->isScene(static::$DELETE)){
            $rule = ['id' => ['required','integer']];
        }

        return $rule;
    }

    public function messages()
    {
        return [
            'id.required'  =>  '编辑导航数据不存在',
            'id.integer'  =>  '编辑导航数据不存在',
            'pid.required'  =>  '上级选择错误',
            'pid.gte'  =>  '上级选择错误',
            'pid.integer'  =>  '上级选择错误',
            'name.required'  =>  '名称必须',
            'name.max'  =>  '名称不能超过100个字符',
            'location.required'  =>  '位置选择错误',
            'location.in'  =>  '位置选择错误',
            'url.required'  =>  '链接必须',
            'url.max'  =>  '链接不能超过200个字符',
            'status.required'  =>  '状态选择错误',
            'status.in'  =>  '状态必须是显示/隐藏',
            'target.required'  =>  '打开方式必须',
            'target.in'  =>  '打开方式选择错误',
            'sort.required'  =>  '排序必须',
            'sort.integer'  =>  '排序必须是一个数字',
            'sort.gte'  =>  '排序必须大于等于0',
        ];
    }
}