※日本語化はしてある前提で書きます。
例えば、リクエストクラスに↓こんなバリデーションルールがあった場合
public function rules()
{
return [
'start_date' => 'required|date',
];
}
未入力でPOSTした場合、エラーメッセージは
“start dateは必ず指定してください。”
となる。
resources\lang\ja\validation.php
'attributes' => [
'start_date' => '開始日', ⇐ 追加
],
attributesに追加すると
“開始日は必ず指定してください。”
となる。
resources\lang\ja\validation.php
'custom' => [
'start_date' => [ ⇐ 追加
'required' => ':attributeは必須です', ⇐ 追加
],
],
customに追加すると
“開始日は必須です“
となる。
resources\lang\ja\validation.phpに記述することで
どのページ(リクエスト)でも有効な共通設定となるが
リクエストごとにメッセージ内容を変えたい時は
app\Http\Requests\xxxxRequest.php
public function attributes()
{
return [
'start_date' => '初日',
];
}
public function messages()
{
return [
'start_date.required' => ':attributeは必須入力です',
];
}
とすることで
“初日は必須入力です“
となる。
validation.phpとリクエストクラス両方に記述した場合は、リクエストクラスの方が優先される。
つまり、validation.phpよりリクエストクラスに記述されたエラーメッセージの方が強いので
サイト内で共通なものはvalidation.phpに記述して、個別なものは各リクエストクラスに記述するのが良いと思う。