Laravel自定义验证规则

自定义验证规则对象

执行 make:rule Artisan 命令,创建目录

继承Rule编写自定义方法

/**
 * 【json格式校验】
 * Class JsonFormat
 * @package App\Rules
 */
class JsonFormat implements Rule
{
    /**
     * Determine if the validation rule passes.
     *
     * @param  string  $attribute
     * @param  mixed  $value
     * @return bool
     */
    public function passes($attribute, $value)
    {
        $data = json_decode($value, true);
        if (!$data) {
            return false;
        }

        foreach ($data as $item) {
            if (array_key_exists('exam_id', $item) == false) {
                return false;
            }
            if (array_key_exists('option_id', $item) == false) {
                return false;
            }
        }
        return true;
    }

    /**
     * Get the validation error message.
     *
     * @return string
     */
    public function message()
    {
        return ':attribute 必须包含 exam_id 以及 option_id 字段';
    }
}

passes为校验方法;$attribute参数是属性;$value是参数值

返回结果 true则通过校验;fasle则不通过

message为校验失败显示的文案

你可能感兴趣的:(Laravel自定义验证规则)