Laravel对所有模型的自定义验证

时间:2019-06-15 04:01:31

标签: php laravel laravel-5 laravel-5.1 laravel-validation

我使用的是laravel最新版本,并且在所有模型中都有一个公用字段,称为slug。我将检查slug是否唯一。我在所有表中都有子弹

所以我扩展了Valdiator类

class CustomValidator extends Validator{

protected function validateIsUniqueSlug($attribute, $value, $parameters)
    {

        $isSlugExist= User::where('slug', $value)->exists();
        if ($isSlugExist) {
            return false;
        }
        return true;
    }

}

这有效,但是这里的问题是我需要对模型重复此操作,但是我不想这样做。是否有更好的方法,所以我可以用一种方法来处理

我知道laravel的包装不好,但由于某种原因我不能使用该包装

1 个答案:

答案 0 :(得分:0)

如果您使用创建定制规则,请尝试以下代码

用于创建规则的

php artisan make rule命令转到App \ Rules目录 您可以在此处查看通过功能条件

并使用任何模型

'slug'=>[new SlugDomain], in validator 

规则文件

public function passes($attribute, $value)
{
    $isSlugExist= User::where('slug', $value)->exists();
    if ($isSlugExist) {
        return false;
    }
    return true;
}