Codeigniter возвращает переменные из модели в контроллер - PullRequest
0 голосов
/ 17 ноября 2011

Я нахожусь в процессе создания электронного письма активации для моей регистрации. Мне нужно передать переменные, содержащие код активации и адрес электронной почты, из моей модели обратно в контроллер, куда я отправлю электронное письмо.

Моя регистрационная форма в настоящее время записывает все регистрационные данные в базу данных и создает и код активации.

Как вы можете передать переменные код активации и адрес электронной почты из моей модели обратно в контроллер для использования в моей электронной почте.

Модель:

... 
        $new_member_insert_data = array(
            'first_name' => $first_name,
            'last_name' => $last_name,
            'email_address' => $email,
            'password' => hashPassword($salt, $password, $hash),
            'activation_code' => activationCode($email, $hash.$salt),
            'hash' => $hash
        );

        $insert = $this->db->insert('members', $new_member_insert_data);
        return $insert;
    }

Контроллер

  $this->load->model('members_model');
                  if($this->members_model->create_member())//return variables here somehow
                    {

//get activation code + email variables
//send activation email
                        $this->session->set_flashdata('success', 'success');
                        redirect('home', 'location');
                    }
                    else
                    {
                        $viewdata['main_content'] = $category;
                        $this->load->view('includes/template', $viewdata);
                    }

1 Ответ

1 голос
/ 17 ноября 2011

Вы можете просто вернуть массив значений в случае успеха или FALSE в случае ошибки:

$insert = $this->db->insert('members', $new_member_insert_data);
if ($insert) {
    return $new_member_insert_data; // Same data
}
else {
    return FALSE;
}

... но на самом деле это не имеет смысла, поскольку вы должны передать что-то методу модели, чтобы он был полезным (или имел доступ к некоторым из этих значений ваш заданный код является неполным). Кроме того, возвращение разных типов данных может привести к путанице и, как правило, является плохой идеей.

Несмотря на то, что здесь нет доступа к вашему полному коду, я думаю, что самым безопасным и точным способом может быть выполнение другого запроса после выполнения INSERT. Например, поиск пользователя по email_address (при условии, что он должен быть уникальным).

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