我想在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值爲空時。我需要在我的代碼中更改什麼?
在你正在做的函數registreren()中, $ this-> Respondent-> id = $ id;這個$ id從哪裏來? 還是你想發送$ id作爲函數參數像registreren($ id)? –
我明白,通常你會從網址獲得ID,但我無法弄清楚自己,我怎麼能沒有使用網址得到ID。 我添加了一個帶有id的隱藏輸入字段,這就是爲什麼我試圖使用$ this-> Respondent-> id來檢索id。但它不起作用。我錯過了什麼? – user2314339