Пользовательская проверка Laravel для всей модели - PullRequest
1 голос
/ 15 июня 2019

Я использую последнюю версию 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;
    }

}

, это работает, но проблема в том, что мне нужно повторить это для моделей, но я не хочу этого делать .isесть какой-то лучший подход, чтобы я мог справиться с ним одним методом

я знаю, что у laravel есть медленный пакет, но по какой-то причине я не могу использовать этот пакет

1 Ответ

0 голосов
/ 15 июня 2019

Если вы используете правила создания cutom, попробуйте этот код

php artisan make rule, команда для создания правила перейдите в App \ Rules, здесь вы можете увидеть условие функции pass здесь

и использовать любую модель

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

Файл правил

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