Laravel5.1を使用しております。
FormRequestにてバリデーションを行っており、その際、attributesにてフォーム要素の名称を設定してエラーメッセージ上の表示を調整しております。
カスタムバリデーションルールを作成した際、標準のmessageだけでは対応できなった事から、FormRequestにてmessagesを実装し、該当のルールに対応するメッセージを作成しました。
しかし、messageを設定するとattributesで指定している項目名が置き換わらず、この両者を同時に指定する事ができません。
また、例えば以下のようにmessagesにてattributesで指定した名称を利用しようとしても反映されません。
php
1 public function attributes() { 2 return [ 3 'item1' => 'アイテム1', 4 'item2' => 'アイテム2', 5 'item3' => 'アイテム3', 6 ]; 7 } 8 9 public function messages() { 10 return [ 11 'item2.customCheck' => ':attributeを正しく入力してください。', 12 ]; 13 } 14
上記の場合、「item2を正しく入力してください。」とメッセージは生成されます。
messagesを使用するとattributesは無視されているように思えます。
カスタムバリデーションルールを作成しており、そのメッセージが登録できないことからやむを得ずmessagesで対応しようとしております。
一応lang/ja/validation.php内に追加(「'customCheck' => ':attributeを正しく入力してください。'」)しましたが、こちらも反映されませんでした。
attributesとmessagesを同時に利用したいのですが、どのようにすればよいでしょうか。
追加情報
状況として少し整理できました。
まず、カスタムバリデーションを実装していない場合、messagesとattributesは普通に利用できるようです。
カスタムバリデーションを利用するとそもそも何れも指定できなくなりました。
カスタムバリデーションの実装方法は以下のサイトを参考にしているのですが、何か私の見落としがあるのかもしれません。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。