правило проверки уникально в laravel - PullRequest
0 голосов
/ 04 августа 2020

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

я хочу, чтобы имена поля "grado" и "fk_nivel_academico" не повторяются

Это таблица в моей базе данных:

-----------------------------------------------
id | grado    | fk_nivel_academico | fk_estado
1  | Primero  | 1                  | 1
2  | Segundo  | 1                  | 2

Это правило проверки:

$validatedData = Validator::make(
       [
           'grado' => $this->grado
       ],
       [
           'grado' => [
               'required', 
               Rule::unique('grado')
                   ->where('fk_nivel_academico', '==', $this->fk_nivel_academico)
                   ->where('grado', '==', $this->grado)
               ]
       ],

1 Ответ

0 голосов
/ 04 августа 2020

Я думаю, проблема в том, что вы используете компаратор ==, а в sql это =. Другое решение, которое я бы порекомендовал вам использовать, - это создать файл Rule. Вот руководство Как создать настраиваемую проверку

И в методе проходов вы можете использовать что-то вроде этого

public function passes($attribute, $value)
{
   $table = Table::where('fk_nivel_academico', '=', $this->fk_nivel_academico)
   ->where('grado', '=', $this->grado)->get();

   if($table->count() == 0){
        return true;
   }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...