Подтвердить что ты не робот

Laravel 4: создание уникальной комбинации значений/столбцов

Я импортирую кучу записей csv в моей базе данных с помощью Laravel 4.

Я не могу указать на один столбец, который должен быть уникальным, это комбинация из 5 столбцов, что делает его уникальным. Однако: как определить это в Laravel?

Вариант 1: построитель схем
Вы можете использовать метод $table- > unique ('email'), но это похоже только на один столбец, а не на комбинацию столбцов.

Вариант 2: проверка
Менее предпочтительным, но я могу проверить модель перед ее вставкой. Однако, опять же, используя правила "unique: [table]", он вернет ошибку, если только одно из значений столбца не является уникальным, а не их комбинацией.

Может ли кто-нибудь сказать мне, как я должен это делать?
Я уверен, что чего-то не хватает, но я мог бы использовать толчок в правильном направлении: -)

Спасибо,

Дитер

4b9b3361

Ответ 1

Вы можете комбинировать:

$table->unique( array('email','name') );

И почти все в Laravel будет принимать массивы, чтобы делать все, что вам нужно, с "более чем одним".

Ответ 2

Использовать метод построения схемы unique() для определения вашей модели данных, как отметил Антонио.

Кроме того, если вы хотите использовать проверку на своей модели, рассмотрите мое пользовательское правило Validator для нескольких индексов UNIQUE: https://github.com/felixkiss/uniquewith-validator

Ответ 3

Вы можете попробовать это

$table->string("name");
$table->string("email")->unique("name")