CakePHP에서 세션 데이터를 작성, 쓰기 및 읽는 방법은 무엇입니까?
-
11-09-2019 - |
문제
누구나 세션을 만들고 데이터를 작성하는 방법에 대한 예를 들어 줄 수 있습니까? 쓰기 명령을 사용하여 세션에 데이터를 작성하는 방법에 대한 구문을 보았습니다. 그러나 세션을 생성하고 값을 검색하는 방법.
내 응용 프로그램에는 모든 페이지 요청에 사용해야하는 Form_id 및 User_id의 두 가지 데이터가 있습니다. 그렇다면 세션 변수로 어떻게 저장하고 응용 프로그램에서 사용합니까?
편집하다
function register()
{
$userId=$this->User->registerUser($this->data);
$this->Session->write('User.UserId',$userId);
//echo "session".$this->Session->read('User.UserId');
$this->User->data=$this->data;
if (!$this->User->validates())
{
$this->Flash('Please enter valid inputs','/forms' );
return;
}
$this->Flash('User account created','/forms/homepage/'.$userId);
}
세션 변수를 사용하는 방법 'user.userid' $ userid 대신 $ this-> flash ( '사용자 계정 생성', '/forms/homepage/'.$ userID);
모든 페이지 요청에서 userID를 전달하기 때문에이 변수를 모든보기 파일에서 사용할 수 있습니까?
편집 2
2 개의 컨트롤러, 사용자 및 양식이 있습니다. 사용자의 userID를 사용자의 세션 변수에 씁니다._제어 장치. HomePage.ctp라는 뷰 파일이 있습니다. 이제 홈페이지의 users_controller에 정의 된 세션 변수를 어떻게 사용할 수 있습니까? 어리석은 질문을한다면 죄송합니다. 나는 케이크 북을 통과했지만 내 의심은 지워지지 않았다. 또한 코딩의 시행 착오 방법을 시도하고 있으므로 도와주세요.
편집 3
컨트롤러의 홈페이지 작업에있는 사용자 ID 인 세션 변수 'UID'가 있습니다.
$this->Session->write('uid',$this->data['Form']['created_by']);
동일한 컨트롤러의 설계 동작 방법에서 동일한 변수가 필요합니다. 내가 줄 때
$uid=$this->Session->read('uid');
echo "uid: ".$uid;
값은 반향되지 않습니다.
같은 컨트롤러에서 세션 변수를 사용할 수 없습니까?
해결책 5
나는 UID가 반향되지 않은 이유를 알았습니다 (질문의 3 부분을 편집). 그것은 바보 같은 실수로 인한 것입니다. 컨트롤러에서 엔드 태그 후에 공백이있었습니다. 이제 잘 작동합니다.
다른 팁
빵집은 가장 친한 친구입니다.
http://book.cakephp.org/view/398/methods
모든 세션 읽기/쓰기는 컨트롤러에 속합니다.
$this->Session->write('Person.eyeColor', 'Green');
echo $this->Session->read('Person.eyeColor'); // Green
케이크 PHP에서 당신은 할 수 있습니다 이와 같은 세션을 만듭니다
$this->request->session()->write('user_id', 10);
그리고 당신은 할 수 있습니다 이와 같은 세션 값을 읽습니다
echo $this->request->session()->read('user_id');
매우 간단합니다!
세션을 만들기 위해 코드를 작성할 필요가 없으며 이미 내장되어 있습니다. 그러면 위에서 언급 한대로 읽기 및 쓰기 세션 만 사용합니다. 자세한 내용은 여기를 참조하십시오.
http://book.cakephp.org/2.0/en/core-libraries/components/sessions.html컨트롤러에 사용됩니다
http://book.cakephp.org/2.0/en/core-libraries/helpers/session.html시야에서 사용됩니다
이 경우에는 다음과 같습니다.
$this->Flash('User account created','/forms/homepage/'.$this->Session->read('User.UserId'));
그리고 두 번째 질문은 Jason Miy가 Anwered입니다.http://api.cakephp.org/class/session-helper). 당신은 단순히 당신의 견해에서 이것을 사용할 수 있습니다.
$userId = $session->read('User.UserId');
적절한 요리 책 페이지를 천천히 그리고 조심스럽게 읽으면 일반적으로 많은 도움이됩니다 ...
내가 이상한 세션 행동을 할 때, 이것은 나를 도와줍니다.
모델:
function clearAllDBCache() {
$db =& ConnectionManager::getDataSource($this->useDbConfig);
$db->_queryCache = array();
}
`
도우미 세션 헬퍼를 access하십시오 lib/Cake/View/Helper/SessionHelper.php
메소드 추가 :
public function write($name = null) {
return CakeSession::write($name);
}