前提条件
テーブルのプライマリキーの名前は「id」。
「カラム名1」入力時に「カラム名1」「カラム名2」を併せた重複チェックを行う。
手順
まずは、フォームリクエストに「use Illuminate\Validation\Rule;」を追加する。
追加しておかないと以下のエラーとなるので注意。
エラーメッセージ
Class "App\Http\Requests\Rule" not found
追加できたら、rules()とmessages()のソースは以下。
フォームリクエスト
public function rules(): array
{
return [
'カラム名1' => [Rule::unique('テーブル名')->ignore($this->input('id'))->where(function ($query) {
$query->where('カラム名1', $this->input('カラム名1'))
->where('カラム名2', $this->input('カラム名2'));
})],
];
}
public function messages(): array
{
return [
'カラム名1.unique' => 'エラーメッセージ',
];
}


コメントを残す