2012-09-14 3 views
0

나는 객체 지향 외곽선에서 물러나고 나의 컨트롤러 중 하나에 원시 PHP 파일을 포함시키려는 상황이있다.Symfony2는 표준 PHP를 포함하지 못하나요?

엔티티의 양식 나뭇 가지 파일에 알 수없는 양식 필드를 포함하려는 이유 (이러한 양식 필드는 포함하려는 별도의 파일에 정의되어 있음).

내 의도는이 필드 (예 : data_1, data_2 등)에 대한 제출 작업 루프에 있으며이를 직렬화하여 엔터티 속성 "data"에 저장합니다. 이 엔티티의 결과를 출력하는 뷰는 또한 템플릿 유형을 기반으로합니다. 각각에 대한 뷰 템플릿을 포함하는 유사한 디자인 덕분에 몇 가지 필드와 예상되는 추가 필드를 예상하고 올바른 방식으로 출력 할 것입니다. 템플릿 유형. 이제

,이 일을 :

//All template form files store all their html in $output 
    include '/'.$templatePath.'/form.php'; 

    return $output; 

내가 그래서

Warning: include(/main/1/form.php) [<a href='function.include'>function.include</a>]: failed to open stream: No such file or directory in /var/www/biztv/src/BizTV/ContentManagementBundle/Controller/DefaultController.php line 136 

입니다 말하는 심포니 오류 (! 아닌 PHP 오류) 수를이 단지 I의 경로를 잘못-추적 말 것 symfony2에서 금지 된 행위를 포함 시키려하고 있습니다. 의심 스럽습니다. 내가 여기에서 시도하고있는 것을 성취 할 수있는 다른 방법은 없을까? 당신의 코드를 보면

+0

내가 그것을 포함하는 것하고 다른 방법을 생각 : 당신의 나뭇 가지 템플릿에서 다음

ob_start(); include __DIR__.'/../Forms/form.php'; $formContent = ob_clean(); ... return $this->render('tpl.html.twig', array( 'form_content' => $formContent, )); 

그리고 그렇지 않으면 그것은 당신이 컨트롤러에서

을 전송 등해야 어떤 헤더를 방해 할 수있다 자바 스크립트를 사용하여 동적 양식 부분,하지만 훨씬 더 구조적 현명하지 않습니다, 나는 여전히 객체 지향 구조 = "에서"속이는거야) 나는 어쨌든 SSI 자바 스크립트보다 편안합니다. –

+0

이 form.php 파일의 위치는 어디입니까? 내 말은, 그 완전한 길은 무엇인가? –

+1

** 실제로 ** PHP 오류입니다. –

답변

3

, 당신은 루트 파일 시스템을 가리 킵니다 경로의 시작 부분에 슬래시, ...

컨트롤러/xxx는 당신의 현재 파일을 가정하고 올바른 상대 경로를 (을 사용할 수 있습니다. PHP와 양식은/form.php) 양식에 있습니다

include __DIR__.'/../Forms/form.php'; 

하지만 당신은 .PHP 파일의 포함의 결과를 캡처 한 다음 나뭇 가지 템플릿에 내용을 전달하는 출력 버퍼링을 사용해야합니다.

{{ form_content|raw }} 
+0

고마워요! 다시 생명의 은인. –

+0

출력 버퍼링 코드로 업데이트 됨 – AdrienBrault

관련 문제