2013-06-25 1 views
0

조치가 있습니다. print_pdf()은 PDF를 인쇄합니다.이 작업을 렌더링하기 때문에이 작업과 PDF 인쇄 만 볼 수 있습니다. 무엇이 PDF 파일에 인쇄됩니까? 그래서 나는 bleh() 액션을 통해 문서를 인쇄하기위한 사용자 인터페이스를 만드는 액션을 만들었습니다. print_pdf() 액션이므로 CakePHP : 컨트롤러 내에서 다른 작업의 인수로 작업 호출

public function bleh() { 
    $this->print_pdf($arg); // this doesn't work 
} 


public function print_pdf($arg) { 
    $this->render(); 
} 

그러나, 상기 동작이 정상적으로 실행되도록 ../controller/print>pdf/arg 대한 형식이 필요하다. requestAction 또는 redirect을 사용하지 않고도이를 수행 할 수있는 다른 방법이 있습니까?

답변

0

양식 제출 데이터가 bleh() 인 것으로 보입니다. print_pdf()에 계속 표시되므로 print_pdf()으로 전달할 인수가 필요하지 않습니다.

public function bleh() { 
    // form submission is made 

    $this->print_pdf(); // no argument 
} 

public function print_pdf() { 

    if (check form submission) { 
     $arg = $this->data[previous_form_data]; 

     // some stuff 

     $this->render(); 
    } 
} 

이 방법은 잘 작동하지만 원래 방법과 비슷한 방법이 있는지 알고 싶습니다.

+0

'print_pdf ($ arg)'에 남긴'$ arg'을 언급하고 있습니까? 그것은 오타 였기 때문에 지금 당장 수정했습니다. 그리고 네, 이것이 효과가 있습니다. 또한, 이것은 몇 가지 의사 코드를 야기합니다. – musicliftsme

+0

이것이 의사 코드 인 이유입니다. 'pdf_print()'에서 나는 이전 폼 제출과'$ arg = $ this-> data를 확인하기 위해 if (isset ($ this-> data [ 'Model'] [ 'arg']))' [ 'Model'] [ 'arg']'. – musicliftsme

+0

또한'print_pdf'는 public입니다.'protected'로 만들면 전혀 호출 할 수 없습니다. "비공개"로 만들고이 프레임 워크에서 작동하게하려면 어떻게해야합니까? 현재로서는'controller_name/print_pdf'로 가면 양식 제출이 없었기 때문에 아무 것도 표시되지 않습니다. – musicliftsme

관련 문제