cakephp: не могу предварительно выбрать связанную модель при добавлении - PullRequest
0 голосов
/ 30 декабря 2010

Я думаю, что что-то пропустил. (CakePHP)

У меня есть много отношений между соискателями и работодателями. И когда я просматриваю соискателя, я вижу, что соответствующая таблица работодателей работает отлично (благодаря выпечке!)

Но если я нажму «Новый работодатель», я хочу, чтобы раскрывающийся список кандидатов был предварительно выбран, чтобы я мог его скрыть. я просто не могу понять, как я могу передать Applicant_id в представление add для работодателей.

(если я отредактирую работодателя из соответствующей таблицы работодателей для заявителя, кандидат_идентификатор действительно будет принят)

Кто-нибудь может помочь? пожалуйста? Vauneen

1 Ответ

0 голосов
/ 30 декабря 2010

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'));

Надеюсь, что это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...