標題の通りです。 FormRequestを利用して、ruleを作る際に複数カラムでユニークにする設定を解説していきます。
例えば、moviesテーブルで、movie_id の中で、actor_idをuniqueにする場合です。(ただし、別のmovie_idには、actor_idが存在していもOK)
■前提
・FormRequestとして、MovieRequest を 作成
・movies テーブルのカラムは下記3つ
'publish_date' 'movie_id' 'actor_id'
・カラム制約
→ 全て requierd
→ movie_id と actor_id の両カラム合わせて uniqe
<?php namespace App\Http\Requests; use Illuminate\Foundation\Http\FormRequest; use Illuminate\Validation\Rule; class MovieRequest extends FormRequest { public function authorize() { return true; } public function rules() { return [ 'publish_date' => 'required', 'movie_id' => 'required', 'actor_id' => ['required',Rule::unique('movies', 'actor_id')->where('movie_id', $this->input('movie_id'))], ]; } }