我使用的是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的包装不好,但由于某种原因我不能使用该包装
答案 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;
}