POSTされた変数名が配列だったりで対象テーブルのカラム名と一致していない場合やPOSTされた値を加工しないとテーブルにinsert出来ない場合は、コントローラーで行わずリクエストクラスで加工、整形を行うとソースがスッキリする。
■バリデーション実行前に実行される
protected function prepareForValidation()
{
$this->merge([
"hoge" => データの加工など,
]);
}
■バリデーション通過後に実行される
protected function passedValidation()
{
// 配列を対象テーブルのカラム名に合わせる
for($i = 0; $i < 5; $i++){
$this->merge([
"hoge".($i+1) => $this->input("hoge.".($i+1)),
]);
}
}