Я новичок в cakephp и пытаюсь написать с ним простое приложение, однако я застрял с некоторыми проблемами проверки формы.
У меня есть модель с именем "Person", которая имеет много объектов "PersonSkill". Чтобы добавить PersonSkill к человеку, я настроил его так, чтобы он вызывал URL:
http://localhost/myapp/person_skills/add/person_id:3
Я проходил через person_id, потому что хочу отобразить имя человека, для которого мы добавляем навыки.
Моя проблема в том, что если проверка не пройдена, параметр person_id не сохраняется до следующего запроса, поэтому имя человека не отображается.
Метод add на контроллере выглядит следующим образом:
function add() {
if (!empty($this->data)) {
if ($this->PersonSkill->save($this->data)) {
$this->Session->setFlash('Your person has been saved.');
$this->redirect(array('action' => 'view', 'id' => $this->PersonSkill->id));
}
} else {
$this->Person->id = $this->params['named']['person_id'];
$this->set('person', $this->Person->read());
}
}
В моем файле person_skill add.ctp я установил скрытое поле, в котором хранится person_id, например:
echo $form->input('person_id', array('type'=>'hidden','value'=>$person['Person']['id']));
Есть ли способ сохранить параметр url person_id при сбое проверки формы, или есть лучший способ сделать это, которого я полностью пропускаю?
Любой совет будет принят с благодарностью.