category

category

laravel

2025.9.7

2025.9.16

56

【Laravel】フォームリクエストを使用した複数カラムのユニークチェックとエラーメッセージ

前提条件

テーブルのプライマリキーの名前は「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' => 'エラーメッセージ',
    ];
}

1183

コメント

コメントを残す

ニックネームは公開されます

CAPTCHA


閉じる