У меня есть пара полей в <form>
... $fieldset
- это массив имен полей, он зацикливает их с проверкой isset()
.
Я хочу применить проверку (например: требуемый ввод, электронная почта) к нескольким полям, как применить это из моей логики кода?
public function actionProfile($id = null) {
$profileModel = new ProfileModel;
// <input> fields name
$fieldset['name'] = array('FirstName', 'LastName');
$fieldset['address'] = array('HouseNumber', 'StreetName', 'Town', 'Location');
$formError = array();
if (isset($_POST['profile'])) {
// Process input event
foreach ($fieldset as $legend => $fields) {
foreach ($fields as $field) {
if (!isset($_POST['profile'][$field])) {
$formError[$legend] = $field;
} else {
$form[$legend][$field] = $_POST['profile'][$field];
}
}
}
if (count($formError) == 0) {
if ($profileModel->saveAddress($form['address'])) {
//Saved to the database.
}
}
}
// Get data from the database
$data['profile'] = $profileModel->find($id);
$view = new View($this->layout, $data)->render();
}
В файле просмотра это будет выглядеть примерно так:
<input type='text' value=<?php echo $profile['first_name'] name='profile[FirstName]' ?>
<input type='text' value=<?php echo $profile['last_name'] name='profile[LastName]' ?>
Редактировать : При редактировании записи через форму .. Если есть ошибка (проверка) - я хочу вернуть значение пользовательского ввода обратно в значение <input>
вместо значения из базы данных. Как это можно сделать из моего кода?