CakePHP2에서 작성한 양식에 데이터가 게시되지 않은 경우 비워 두되 세션 키 Person.id가있는 경우 모델의 데이터로 채워지기를 원합니다. 내 코드는 다음과 같습니다.세션에서 ID를 사용하여 CakePHP에서 양식 필드 채우기
function about() {
// Make session key for debug purposes
$this->Session->write("Person.id",1);
if($this->request->is('post')) {
debug("post");
} else {
debug("not post");
// Use the value in the session Person.id to find the
// record in the Person model
$this->params->data = $this->Person->findById($this->Session->read("Person.id"));
}
}
위의 대부분이 작동합니다. 데이터를 게시하지 않고 뷰에 액세스하면 양식에 예상대로 Person
모델의 데이터가 채워집니다.
그러나 양식을 게시하면 post
을 예상했을 때 여전히 디버그 메시지 not post
이 표시됩니다.
$this->params->data
에 데이터를 할당하는 줄을 주석으로 작성한 경우 양식을 제출하면 정확한 디버그 메시지 post
이 표시되지만 왜 이런 일이 발생하는지 이해할 수 없습니다.
$this->params->data
이 채워진 경우 양식 게시와 동일한 의미를 지니는 경우 실제 양식을 확인하려면 어떻게해야합니까?
UPDATE : 다음은 I가 원하는 방법을 정확하게 작동합니다 ....하지만 난 아직도 이유를 이해하지 내가 변경하는 경우 if($this->request->is('post'))
if($this->request->data)
에.
큰 설명, 감사합니다! 'Person.id'는 실제로 제출 된 이메일 주소를 기반으로 레코드의'id'에 대한'Person' 모델을 검색하는 쿼리의 결과입니다. 위의 코드를 다중 단계 제출 양식의 일부로 사용하고 있습니다. 각 단계가 제출 될 때마다 데이터가 데이터베이스에 저장되지만 사용자가 이전 단계로 돌아 가기로 결정한 경우 데이터를 다시 양식으로 가져 오는 방법이 필요했습니다. – Joseph