2015-01-30 8 views
-1

작동하지 않습니다 저장, 나는 다음과 같이 데이터를 저장하려면 다음과 같습니다 : 위의 코드가 작동하지CakePHP의 내가 <strong>CakePHP는 2.3</strong>을 사용하고 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}')"); 

이제 마지막으로 삽입 한 ID를 어떻게 얻을 수 있습니까? 나는 아래, 마지막으로 삽입 된 ID를 얻을 수 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

내가 이미이 시도하고 오류가 ??이 오류를 gves하지 – user123456

+0

작동하지 그 ... 그리고 내 대답이의 다른 – Supravat

+0

을 받고 어떤 :( – user123456

0

아래 코드를 사용해보십시오. 시스템 사용자이 모델 이름으로 간주됩니다.

$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-> data를 직접 저장하면 작동합니다. if ($ this-> SystemUser-> save ($ this-> data)) { $ lastid = $ this-> SystemUser-> getLastInsertId(); } else { // do something } 하지만 md5 (암호)와 몇 가지 필드를 추가해야하나요? 어떻게 할 수 있습니까? – user123456

+0

문제가 유효성 검사에 있습니다 : - var $ validate = array ('password'=> array ('ruleName'=> 배열 (// '규칙'=> '(/=(==**\d)(?= (? =. *? [AZ]). * [az]) (? =. * [AZ]) [0-9a-zA-Z] {8,} $ /) ','rule '=>' (? =. *? [az]) (? =. *? [0-9]). {8,} $) ','message '=> "비밀번호는 8 문자, 대문자 1 자, ('rule'=> 배열 ('matchPasswords', 'password'), 'message'=> '패스워드와 패스워드는 반드시 일치해야합니다. 같은. ")))); 나는이 문제를 안고있다 .. 가능하다면 나를 도와주세요. – user123456

+0

function matchPasswords ($ field = array(), $ compare_field = null) { foreach ($ 필드는 $ key => $ 값) { \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