2016-06-14 110 views
1

我想在CakePHP中創建以下內容:更新CakePHP中的現有記錄

起始頁:用戶輸入一個登錄名,該登錄名存在於DB中。表名稱登錄名。 一旦用戶輸入了正確的登錄名,用戶就會繼續登記表單,用戶可以在其中添加個人數據到現有記錄。

當用戶保存表單時,只有登錄名的記錄中添加了個人數據。

這是我有:

邏輯開始頁:

public function checkCodeRespondent() { 

    //set var 
    $password = $this->data['Respondent']['loginname']; 

    //set condition for hasAny function 
    $condition = array('Respondent.loginname'=>$password); 

    //if password matches continue to registreer 
    if($this->Respondent->hasAny($condition)){ 
     //find data by password 
     $respondent = $this->findByPass($password); 
     //set var for current id 
     $id= $respondent['Respondent']['id']; 
     //redirect with current id 
     $this->redirect(array('action' => 'aanmelden', $id)); 
    } else { 
    //if password does not match, return to index with errormessage 
     $this->redirect(array('action' => 'index')); 
    } 
} 
    public function findByPass($pass) { 

    $respondent = $this->Respondent->find('first', array('conditions' => array('pass' => $pass))); 
    return $respondent; 
} 

這是將數據保存到記錄的邏輯:

public function registreren() { 
    if($this->request->isPost()) { 

     $this->Respondent->id = $id; 
     if ($this->Respondent->save($this->request->data)){ 
      $this->Flash->success(__('Your post has been saved.')); 
      return $this->redirect(array('action' => 'index')); 

     } else { 

     } 
    } 

我以爲我聽錯我的ID通過函數checkCodeRespondent(),但這不起作用。我忘了什麼或者我做錯了什麼?如果我需要提供更多信息,我很樂意提供幫助。

更新:我讀到我需要添加echo $form->input('id');,只有當我的debug($this->request); id值爲空時。我需要在我的代碼中更改什麼?

+0

在你正在做的函數registreren()中, $ this-> Respondent-> id = $ id;這個$ id從哪裏來? 還是你想發送$ id作爲函數參數像registreren($ id)? –

+0

我明白,通常你會從網址獲得ID,但我無法弄清楚自己,我怎麼能沒有使用網址得到ID。 我添加了一個帶有id的隱藏輸入字段,這就是爲什麼我試圖使用$ this-> Respondent-> id來檢索id。但它不起作用。我錯過了什麼? – user2314339

回答

1

如果您已經添加了ID隱藏字段,則只需更換:

$this->Respondent->id = $id; 

通過:

$this->Respondent->id = $this->request->data['Respondent']['id']; 
And in your view, give name="data[Respondent][id]" in the hidden field of id like: 
<input type="hidden" name="data[Respondent][id]" value="value of id"> 

應該爲你工作,如果沒有其他問題的出現。

+0

該死的就是這麼簡單哈哈。非常感謝你!真的很感謝你羚牛的時間來幫我:) – user2314339

+0

不客氣的人,繼續前進。 –