2014-06-17 1 views
0

내가 만들고 내 구성 요소 중 하나 (응용 프로그램/컨트롤러/구성 요소)에서 문자열에서 파일을 다운로드 할 CakeResponse를 사용하기 위해 노력하고있어에서 CakeResponse를 사용하려고 2.4하지만 난이 오류가 발생했습니다CakePHP의 구성 요소

Call to a member function body() on a non-object 

내가 구성 요소에서 CakeResponse에 액세스 할 수있는 방법을
$this->response->body("toto"); 
$this->response->download("titi.txt"); 
return $this->response; 

아래의 코드와

?

영어를 유감스럽게 생각하며 도와 주셔서 감사합니다.

+0

download() - 명확하게 문서화 된대로 - 헤더 만 설정하면됩니다. 디스패처 사이클의 끝에서이 디스패처 사이클을 보내면이 방법으로 응답 준비가 다운로드됩니다. – mark

+1

수정 사항은 모두 다른 질문이어야하며 문제를 검색하고 디버그 한 후에 만 ​​게시하십시오. 이전에 "다운로드가 작동하지 않습니다"라는 질문을 추가하면 원래의 문제와 관련이 거의없는 다른 문제를 해결해야하기 때문에 마크의 대답을 편집하거나 삭제해야합니다. – Nunser

답변

3

오류가 잘못 되었나요? 분명히 개체가 이런 식으로 사용할 수 없다고 말합니다.

일반적으로, 당신은 구성 요소 콜백 내부의 컨트롤러 객체를 통해 액세스하려고합니다 : 등

public function initialize(Controller $controller) { 
    $controller->response->body(...); 
    ... 
} 

다른 방법으로 필요한 경우 (초기화에서 지역 특성에 전달할 수 있습니다) 나중에 다시 사용하십시오.

$this->Controller = $controller; 
+0

예, 오류를 이해했습니다. 제 질문은 "구성 요소 내에서 CakeResponse에 액세스하려면 어떻게해야합니까?", 미안합니다. 이제 오류가 사라졌습니다. 감사합니다.하지만 아무 일도 일어나지 않습니다. 내 질문을 업데이트 할게. – hidewak