$c = array(); $allowed_field_names = Config::read('contact_form_elements'); $post_vars = $app->request()->post(); // We iterate through id foreach ($post_vars as $key => $var) { // as keys are name_id $explode = explode('_', $key); $id_contact = array_pop($explode); // column name can be placeholder or field_name $column_name = implode('_', $explode); // We try to avoid as possible possible Database mess if (!in_array($column_name, $allowed_field_names)) { continue; } // We edit the field $contact = models\Contact::find($id_contact); $contact->{$column_name} = $var; $contact->save(); } $app->redirect($app->urlFor('getFormEdit', array('id' => $id))); })->name('postFormContactEdit'); // /form/edit/:id/fields controller // Edit Fields controller // Name and placeholders for the current fields are updated // type or number of fields cannot be updated for performance reasons $app->post('/form/edit/:id/fields', function ($id) use($app) { $c = array(); $allowed_field_names = Config::read('field_form_elements'); $post_vars = $app->request()->post(); // We iterate through id foreach ($post_vars as $key => $var) {