2011-09-25 3 views
0

내가 HMVC 구조에서 하위 요청을 수행하기 위해 다음 코드를 사용하여 변경 :Kohana : 하위 요청의 (HMVC) 쿠키를 얻는 방법을

요청이 "PAGE1"하위 요청을 뜻을에 "페이지 2 "다음 코드로 :

$request = Request::factory('/page2') 
      ->method(Request::POST) 
      ->post($postData) 
      ->execute(); 

에서 실행"페이지 2 "지금은 쿠키의 새 값을 캡처해야

setcookie('new_var', $newValue); 

하여 쿠키 항목의 값을 변경/추가 할 것"new_var "를"Page1 "에 입력하십시오. 그러면 내가 어떻게 할 수 있니?

추신 : 일부 제약으로 인해 쿠키에 'new_var'를 설정해야하므로 세션에 넣는 것이 답이 아닙니다.

========== 업데이트 ============= zerkms 제안, 나는 이런 식으로 뭔가했다

:

$response = Request::factory('/page2') 
      ->method(Request::POST) 
      ->post($postData); 

//before 
error_log(print_r($response->cookie(), TRUE)); 

$response->execute(); 

//after 
error_log(print_r($response->cookie(), TRUE)); 

을 "before"및 "after"로그 항목의 결과는 모두 빈 배열입니다. :(

kohana에서

답변

0

당신이 더 당신이 모두 검색하기위한이 방법을 사용하고

+0

응답 (심지어 같은 요청에) 쿠키를 설정 할 수 있습니다이 경우 Response::cookie() 방법.

을 사용하는 것 : 쿠키는 아니다 static 메소드를 호출하고 현재 응답에 대한 쿠키를 설정/가져옵니다. 응답은 $ this-> response 범위에서만 호출 할 수 있습니다. 응답은 $ this-> _ cookies protected var에 쿠키를 저장하고 즉시 함수 호출을 설정하지 않습니다. case [Cookie helper] (http://kohanaframework.org/3.2/guide/api/Cookie)가 더 좋은 해결책이 될 것입니다. – atma

+0

@atma : 물론 정적 인 메소드가 아닙니다 ;-)하지만 그건 일반적인 컨벤션입니다 * * 서명을 쓰려면 (정적 또는 인스턴스 중 하나). 또한 - 그의 질문을 다시 한번 읽으십시오. ** 쿠키 ** :: set()은 ** 동일한 ** 요청을 설정하고 읽으려는 한 그에게 도움이되지 않습니다. – zerkms

+0

감사합니다. 규칙에 대해 알고 있습니다. 게시물을 다시 읽을 수 있습니다 : ** "page2"**의 실행은 쿠키 항목의 값을 추가/변경합니다 ... 이제 "**"에서 쿠키 "new_var"의 새 값을 캡처해야합니다. 페이지 1"**. 따라서 Request :: initial()과 일부 하위 요청은 동일합니까? – atma

관련 문제