[Laravel5.7] バリデーションでNGワード設定する方法

ユーザー登録や記事投稿時に特定のワードを入れさせたくないときがあると思います。
そんな時にはバリデーションでNGワードが設定できます。

例として、ユーザー登録時に不正な名前で登録できないようにします。

コントローラーはUserControllerを使います。
store,editの両方で使えるようにするためにフォームリクエストを作ります。

not_regexで指定した正規表現にマッチする文字列では登録できなくなります。
通常は
‘name’ => ‘required|max:191|max:191’
というふうに文字列でルールを記述すればいいのですが、regexnot_regexを使う場合、正規表現のor(|)がバリデーションルールを区切るための|と被ってしまうので、配列を使うようドキュメントに書かれています。

UserControllerに記述を追加します。

次にエラーメッセージの記述です。

attributesの連想配列のキーはフォームのフィールド名です。

これで指定した名前で登録しようとすると「不正な名前です。」と表示されます。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です