Laravelでのユニーク制約【現役エンジニアが解説】

PROGRAM

今回は、Laravelでのユニーク制約について、簡単に解説していきます。

ユニーク制約をつける

Laravelでユニーク制約をつけるにはマイグレーションで対応します。

$table->string('email')->unique();

上記のように、カラム設定の後ろにuniqueメソッドを使うとユニーク制約が可能です。

$table->unique('email');

もしくは、カラム設定と独立してuniqueメソッドだけでもユニーク制約をつけることが可能となっています。

ユニーク制約をはずす

Laravelでユニーク制約をはずすにはdropUniqueメソッドを使います。

$table->dropUnique('email');

上記の例では、emailというカラムについたユニーク制約をはずしています。

はずしに行きたい場合にはup関数に記述しますが、ユニーク制約を追加する際にはロールバック用としてdown関数に記述することになります。

複数のユニーク制約

複数のカラムにユニーク制約をつけることも可能です。

$table->unique(['user_id', 'post_id'])

上記のように、uniqueメソッドの引数にカラムの配列を指定します。

$table->dropUnique(['plan_id', 'id_str']);

複数のユニーク制約をはずす場合も同様で、dropUniqueメソッドの引数にカラムの配列を指定することになります。