2015-01-30 3 views
-1

Я использую CakePHP 2.3, я хочу, чтобы сохранить данные следующим образом следующим образом:CakePHP сохранить не работает 2.X

$insertUser = array(
    'Name' => $Name, 
    'LastName' => $lastName, 
    'password' => $password, 
    'email' => $email, 
    'TimeStamp' => $presentTime, 
    'RefererUserId' => $refererId // set the referer user id 
); 

$this->SystemUser->saveAll($insertUser) // save record in table. 

Приведенный выше код не работает. Я попробовал другой способ:

$this->SystemUser->query("INSERT INTO system_users(Name,LastName,password,email,TimeStamp,RefererUserId) VALUES ('{$Name}','{$lastName}','{$password}','{$email}','{$presentTime}','{$refererId}')"); 

Как я могу получить последний вставленный идентификатор? Я использовал getLastInsertId() получить последний вставленный идентификатор, как показано ниже:

$lastid = $this->SystemUser->getLastInsertId(); 

Но это не похоже на работу.

ответ

0

Ваш $insertUser должны быть следующие

$insertUser['SystemUser'] = array(
    'Name' => $Name, 
    'LastName' => $lastName, 
    'password' => $password, 
    'email' => $email, 
    'TimeStamp' => $presentTime, 
    'RefererUserId' => $refererId // set the referer user id 
); 

Затем вы должны сохранить данные в виде как

if($this->SystemUser->save($insertUser)) { 
    $lastid = $this->SystemUser->getLastInsertId(); 
} else { 
    debug($this->SystemUser->validationErrors); die(); 
} 

Это, вероятно, даст вам информацию вам нужно (при условии, что это не спасает из-за неверные данные, конечно):

debug($this->SystemUser->validationErrors); die(); 

Вот и все.

+0

я уже пробовал это и он не работает :( – user123456

+0

, что становится ошибка ?? – Supravat

+0

не gves ошибок нет ... и войти в другой – user123456

0

Пожалуйста, попробуйте приведенный ниже код. SystemUser считается вашим именем модели.

$this->user_data = array(
     'SystemUser' => array(
        'Name' => $Name, 
        'LastName' => $lastName, 
        'password' => $password, 
        'email' => $email, 
        'TimeStamp' => $presentTime, 
        'RefererUserId' => $refererId // set the referer user id 
     )); 

    if ($this->SystemUser->save($this->user_data)) { 
     $lastid = $this->SystemUser->getLastInsertId(); 
    } else { 
     // do something 
    } 
+0

Я нашел проблему .. но я не знаю о ее soln. , если я сохраню данные $ this-> напрямую, чем моя команда сохранения. if ($ this-> SystemUser-> save ($ this-> data)) { $ lastid = $ this-> SystemUser-> getLastInsertId(); } else { // сделать что-то } но мне нужно добавить md5 (пароль) и еще несколько полей? как я могу это достичь? – user123456

+0

проблема в проверке: - var $ validate = array ('password' => array ('ruleName' => array (// 'rule' => '(/^(?=.*\d)(?= . * [az]) (? =. * [AZ]) [0-9a-zA-Z] {8,} $ /) ',' rule '=>' ((? =. *? [AZ]) (? =. *? [az]) (? =. *? [0-9]). {8,} $) ',' message '=> "Пароль должен содержать: 8 символов, 1 верхний регистр, 1 нижний case, 1 number ")), 'confirm_password' => array ('ruleName2' => array ('rule' => array ('matchPasswords', 'password'), 'message' =>" Пароль и пароль подтверждения должны быть одна и та же."))); Я не понимаю вопроса. Если возможно, вы можете помочь мне. – user123456

+0

Функция matchPasswords ($ field = array(), $ compare_field = null) { foreach ($ field as $ key => $ value) { \t \t \t $ v1 = trim ($ value); \t \t \t $ v2 = trim ($ this-> data [$ this-> name] [$ compare_field]); \t \t \t если ($ v1 = "" && $ v2 =! "" && $ v1 = v2 $!) { \t \t \t \t возвращение ложным; \t \t \t \t \t \t return true; \t \t} } – user123456

Смежные вопросы