CakePHP에서 세션 데이터를 작성, 쓰기 및 읽는 방법은 무엇입니까?

StackOverflow https://stackoverflow.com/questions/1091030

  •  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);
}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top