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에서
응답 (심지어 같은 요청에) 쿠키를 설정 할 수 있습니다이 경우 Response::cookie() 방법.
을 사용하는 것 : 쿠키는 아니다 static 메소드를 호출하고 현재 응답에 대한 쿠키를 설정/가져옵니다. 응답은 $ this-> response 범위에서만 호출 할 수 있습니다. 응답은 $ this-> _ cookies protected var에 쿠키를 저장하고 즉시 함수 호출을 설정하지 않습니다. case [Cookie helper] (http://kohanaframework.org/3.2/guide/api/Cookie)가 더 좋은 해결책이 될 것입니다. – atma
@atma : 물론 정적 인 메소드가 아닙니다 ;-)하지만 그건 일반적인 컨벤션입니다 * * 서명을 쓰려면 (정적 또는 인스턴스 중 하나). 또한 - 그의 질문을 다시 한번 읽으십시오. ** 쿠키 ** :: set()은 ** 동일한 ** 요청을 설정하고 읽으려는 한 그에게 도움이되지 않습니다. – zerkms
감사합니다. 규칙에 대해 알고 있습니다. 게시물을 다시 읽을 수 있습니다 : ** "page2"**의 실행은 쿠키 항목의 값을 추가/변경합니다 ... 이제 "**"에서 쿠키 "new_var"의 새 값을 캡처해야합니다. 페이지 1"**. 따라서 Request :: initial()과 일부 하위 요청은 동일합니까? – atma