2014-09-01 3 views
3

재귀 @include 태그가있는 템플릿의 렌더링 된 문자열을 가져오고 싶습니다. 이건 내보기Laravel 4 - Render recursive @include

return View::make('bind', $data)->render(); 

입니다 : 불행하게도 render() 방법은 recursivity 지원하지 않는 것 같습니다

{{$namespace}}\Decorators\{{$decorators[$i++]}} 
<?php $tab = str_repeat("\t", $i) ?> 

{{$tab}}(
    {{$tab}}new @if(count($decorators) < $i)@include('bind')@endif 

{{$tab}}) 

이되어 내가 가야 무엇 :

Workflows\Decorators\Foo 
(
    new Workflows\Decorators\Bar 
    (
     new 
    ) 
) 

이를 내가 얻은 것입니다 :

Workflows\Decorators\Foo 
(
    new @include('bind') 
) 

그러나 렌더링 대신보기를 표시하면 정확한 소스 코드를 볼 수 있습니다.

보기를 재귀 적으로 렌더링하는 방법이 있습니까?

+1

다른 라인에 @ 지시문을 넣어? 나는 한 줄에 하나씩 @있는 것을 규정하는 제한이 있다고 믿는다. – bishop

+0

@bishop은 그렇게 간단하지 않다는 것을 믿을 수 없습니다. 고마워요! 답을 추가하면 받아 들일 것입니다 :) –

+0

저기! 고맙습니다! – bishop

답변

2

Laravel은 @ 지시문을 별도의 줄에 사용해야합니다. 다른 말로하면, 한 줄에 하나씩 서명하는 것뿐입니다. 경우에 따라 Laravel은 컴파일 오류를 발생시킵니다. 다른 경우에는 신비한 결과를 얻습니다 (귀하의 경우처럼).

그래서, 다음과 같이 코드를 재 작성하고 작동합니다 :

@if (count($decorators) < $i) 
    @include('bind') 
@endif