Simple.Передайте applicant_id
своему действию employers/add
.
Один из способов сделать это - через параметры URL.Пример: /employers/add/3
передаст «3» в действие добавления, и это может быть принято как идентификатор кандидата.Вот код контроллера:
function add($applicantId = null) {
// Optional: Check if $applicantId is provided
if (!$applicantId) {
$this->Session->setFlash('Applicant ID is missing.');
$this->redirect(array('action' => 'index'));
}
// Process action
if (!empty($this->data)) {
$this->Employer->create();
if ($this->Employer->save($this->data)) {
// etc ...
}
} else {
// Insert default values such as applicant_id into the form
$this->data = array(
'Employer' => array(
'applicant_id' => $applicantId
)
);
}
}
Теперь необходимо убедиться, что все ссылки содержат параметр идентификатора кандидата:
echo $this->Html->link('Add Employer', array('controller' => 'employers', 'action' => 'add', 3);
(Примечание. Последний элемент «3» - это кандидатID)
Наконец, вы можете скрыть идентификатор кандидата от формы в файле add.ctp
:
echo $this->Form->input('applicant_id', array('type' => 'hidden'));
Надеюсь, что это поможет!