Codeigniter помогите со скриптом регистрации пользователя - PullRequest
0 голосов
/ 24 мая 2011

:) Этот вопрос для всех, кто знаком с плагином Tankauth.

Я отредактировал tankauth так, чтобы профили пользователей заполнялись без проверки электронной почты.

В регистрационной форме я добавил и проверил еще два поля с именами «first_name» и «last_name», которые я хочу добавить втаблица user_profiles при отправке формы.

Ниже приведена функция tankauth, которая добавляет идентификатор пользователя в таблицу user_profiles, если пользователь активирован.Я прокомментировал, если ($ активирован).Проблема в том, что я не знаю, как вставить мои новые поля first_name и last_name в базу данных.Я продолжаю получать ошибки для всего, что я пытаюсь.

function create_user($data, $activated = TRUE)
    {
        $data['created'] = date('Y-m-d H:i:s');
        $data['activated'] = $activated ? 1 : 0;

        if ($this->db->insert($this->table_name, $data)) {
            $user_id = $this->db->insert_id();
            //if ($activated)
            $this->create_profile($user_id);
            return array(
                         'user_id' => $user_id,
                         'first_name' => $first_name, //added by me
                                                 'first_name' => $first_name, //added by me
                         );
        }
        return NULL;
    } 

Вышеуказанное связано с

private function create_profile($user_id) 
    {
        $this->db->set('user_id', $user_id);
        $this->db->set('first_name', $first_name); //added by me
        return $this->db->insert($this->profile_table_name);
    } 

Может кто-нибудь поделиться, пожалуйста, некоторыми рекомендациями?

1 Ответ

1 голос
/ 24 мая 2011

Попробуйте удалить private in private function create_profile

Также вы можете изменить свою функцию create_profile на:

function create_profile( $user_id ) {
    $data = array(
        'user_id' => $user_id,
        'first_name' => $first_name // Hopefully this is being set correctly.
    );

    return $this->db->insert( $this->profile_table_name, $data );
}

Если ничего из этого не работает.Попробуйте использовать echo $this->db->last_query();

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

...