Notice: 函数 WP_Scripts::localize 的调用方法不正确$l10n 参数必须是一个数组。若要将任意数据传递给脚本,请改用 wp_add_inline_script() 函数。 请查阅调试 WordPress来获取更多信息。 (这个消息是在 5.7.0 版本添加的。) in /data/www/appblog/wp-includes/functions.php on line 6131

Laravel中Validator的验证扩展

虽然Laravel提供一套包括正则匹配在内的完善的验证机制,但你一定会遇到使用规则解决不了的验证,比如数据库验证,这时需要用到Validator的验证扩展。

(1)使用静态方法:Validator::extend
(2)使用对象调用:$validator->addExtension

下面是验证HTTP提交的商品分类信息的例子。

use \Illuminate\Http\Request;
use App\Exceptions\MyValidationException;
use App\GoodsCategory;

class GoodsValidator
{

    public static function validate(Request $request, $final = false)
    {
        $messages = [
            //'category_id.required' => ':attribute 输入不正确!',
            'category_id.required' => '抱歉,您输入的商品分类信息为空',
            'category_id.min' => '抱歉,您输入的商品分类信息长度有误',
            'category_id.category_id_check' => '抱歉,您输入的商品分类信息不存在',
        ];

        $rules = [
            'category_id' => 'required|min:4|category_id_check',
        ];

        Validator::extend('category_id_check', function($attribute, $value, $parameters) {
            return GoodsCategory::where('category_id', $value)->exists();
        });

        $validator = Validator::make($request->all(), $rules, $messages);
        /*
        $validator->addExtension('category_id_check', function($attribute, $value, $parameters) {
            return GoodsCategory::where('category_id', $value)->exists();
        });
        */
        if ($validator->fails()) {
            $messageBag = $validator->messages();
            $messageArr = $messageBag->getMessages();
            print_r($messageArr);
        }
    }

}
上一篇 laravel-admin文件管理插件media-manager
下一篇 Laravel 5 常用命令及性能优化