LoginSignup
4
0

More than 5 years have passed since last update.

Laravel5.2でエラーメッセージをカスタムしてみた

Posted at

やりたいこと

required_ifで 「◯◯が▲▲の場合、□□も入力してください」で、▲▲がフラグ的なものでそのまま出したんでは伝わりづらいのでカスタムしたかった

コード

tags の1つ目は、tag_requiredが1の場合に必須にしたい。
Validator::makeの第2引数までの指定だと
「tag_requiredが"1"の場合、tags.0を指定してください」
などとイケてないメッセージがでる(フォーマットは多言語設定に準じる)

Controller.php
$validator = Validator::make( $request->all(), [
  'id'               => 'bail|required',
  'tags'             => 'bail|required|array|max:10',
  'tags.0'           => 'bail|required_if:tag_required,1|max:20',
  'tag_required'     => 'bail|required|boolean'
], [], [
  'id'               => 'ID'
  'tags'             => 'タグ',
  'tags.0'           => 'タグ1番目',
  'tag_required'     => 'タグの必須指定'
] );
$validator->addCustomValues([
  'tag_required' => ['1' => '1つ以上必須にする' ]
]);
if($validator->fails()) {
  // any
}

こうすると、
「タグの必須指定が"1つ以上必須にする"の場合、タグ1番目を指定してください」
と、まっとうな日本語で出すことができる。

ひっっっさしぶりのphpで色々アレ

4
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
0