Laravel5.4で、配列のバリデーションです。ショッピングカートなどで、商品数が増減し、すべての商品に入力チェックをかけたい場合などに有効です。最初はなんだかよくわかりませんでしたが、ちょっと慣れると、どんなものでもチェックできそうな気になります(笑)。
フォームのリクエストクラスを作成
参考サイト
Validation(Laravel)
Validate an array of form fields with Laravel(Eric L. Barnesさん)
フォームのリクエストクラスを作成
/app/Http/Requests/OrderRequest.php
$ php artisan make:request OrderRequest
use App\Http\Requests\Request;
public function rules()
{
// 名前とメールアドレスのチェック
$rules = [
'name' =>'required',
'email' =>'required|email',
];
// 選択された商品の入力チェック
foreach($this->reitem->get('item') as $key => $val)
{
$rules['item_quantity.'.$key] = 'required';
$rules['item_size.'.$key] = 'required';
$rules['item_color.'.$key] = 'required';
}
return $rules;
}
// エラーメッセージの設定
public function messages()
{
$messages = [];
foreach($this->reitem->get('item') as $key => $val)
{
$messages['item_quantity.'.$key.'.required'] = '商品'.$key.'の数を入力してください';
$messages['item_size.'.$key.'.required'] = '商品'.$key.'のサイズを選択してください';
$messages['item_color.'.$key.'.required'] = '商品'.$key.'の色を選択してください';
}
return $messages;
}
参考サイト
Validation(Laravel)
Validate an array of form fields with Laravel(Eric L. Barnesさん)