Laravel10のバリデーションで以下のルールを用意しました。
- ファイルサイズは2MB以下まで許可する
public function rules(): array
{
return [
'image1' => ['nullable', 'image', 'max:2048'],
];
}
public function messages()
{
return [
'image1.max' => '添付画像1:ファイルサイズは「:max キロバイト以下」にしてください',
];
}
2MB以上のファイルをアップロードしてテストを行ったところ、エラーメッセージ「The ”name名” failed to upload.」が発生。
自分で用意したバリデーションメッセージ「添付画像1:ファイルサイズは「2048 キロバイト以下」にしてください」が表示されない。といった現象です。
目次
原因
原因はphp.iniの制限が先に効いていたためでした。
対策
対策としては下記のとおりphp.iniファイルを修正しました。
upload_max_filesize = 10M
post_max_size = 10M
あとは必要に応じて、php-fpmの再起動、もしくはphpコンテナを再構築してphp.iniを反映させれば完了です。
これで無事に自分で用意したバリデーションメッセージが表示されるようになりました。
コメント