Whatever you do you need to map the key names in your $_POST
variable to model property names.
$model_post_map = array(
'param1' => 'Param1',
'param2' => 'Param26',
'param3' => 'Param31',
'param4' => 'Param13',
'param5' => 'Param2',
'param6' => 'Param35',
'param7' => 'Param10',
'param8' => 'Param22',
'param9' => 'Param3',
);
$post_model_map = array_flip($model_post_map);
function rekey($arr, $map) {
$newarr = array();
foreach ($arr as $k => $v) {
if (isset($map[$k])) {
$newarr[$map[$k]] = $v;
}
}
return $newarr;
}
$modeldata = rekey($post, $post_model_map);
$model->values($modeldata);
You should name your form fields the way you do your models to reduce the impedance mismatch.
You should also use the second argument to $model->values()
to restrict what a form can change.