2016-09-02 2 views
1

Fluid Template에서 사용자 정의 ViewHelper로부터 오는 데이터를 어떻게 사용할 수 있습니까?TYPO3 Fluid에서 ViewHelper의 데이터 사용

그 ViewHelper 정의는 다음과 같이 데이터를 반환 만든 :

{cars: { 
0: {car:'VW Golf V TDi 140 GT Sport DSG Van',price:'144900'}, 
1: {car:'Citroën C5 HDi Elegance',price:'168900'}, 
2: {car:'Seat Leon TSi Stylance',price:'173000'} 
}} 

을 그리고 아래의 코드를 시도했지만 아무것도가 f:for 루프를 INF 인쇄되지 않습니다. FLuid에서 이것을 f : for 루프로 실행하고 싶습니다. 그러나 데이터를 f:for 구문으로 가져 오려면 어떻게해야합니까?

<f:alias map="<car:CarInfo length="5" />"> 
    <table cellpadding="5" cellspacing="0" border="2"> 
    <f:for each="{cars}" as="car"> 
     <tr> 
     <td>{car.car}</td> 
     <td>{car.price}</td> 
     </tr> 
    </f:for> 
    </table> 
</f:alias> 

답변

1

<f:alias 코드가 깨졌습니다. 당신은 당신이 다른 viewhelper 내부 viewhelper에 액세스하려는 때문에, 인라인 주석을 사용할 필요가 https://wiki.typo3.org/Fluid_Inline_Notation

<f:alias map="{cars: '{car:CarInfo(length:\'5\')}'}"> 

은 또한이 같은 네임 스페이스를 포함 했습니까?

{namespace car=Vendor\Extension\ViewHelpers} 
+0

예 내 네임 스페이스를 포함 않았다. 별칭 태그 바로 앞에 를 쓰면 예상대로 데이터를 얻습니다. –

+0

내 예제에서 매핑 된 별칭은'cars :'not :'car :'가 아니어야합니다. –

0

ViewHelper가 배열 또는 JSON 문자열을 반환합니까? JSON 문자열 인 경우 타사 ViewHelper 또는 JSONVariableProvider (Fluid 독립 실행 형 및 TYPO3v8 +)를 사용하지 않고 변수를 사용할 수 없습니다.

참조 : Parse an existing JSON string in fluid template? 실제로 다음 사용 사례를 해결하는 가장 효율적인 방법을 배열을 반환 않는 ViewHelper이

경우

<f:for each="{car:carInfo(length: 5)}" as="car">...</f:for> 
+0

사실 저는 Fluid 필요와 화살표가 있지만 af 문자열을 가져 오는 오류가 발생했습니다. 내 ViewHelper가 문자열을 반환한다고 생각합니다. –

+0

인라인 구문을 사용하면 구문 오류가 발생할 수도 있습니다. 유효한 구문이 아닌 표현식은 Fluid 코드가 포함 된 문자열로 전달됩니다. 가장 먼저 확인해야 할 것이고, 그 후에는 ViewHelper *가 배열을 반환하는지 확인해야합니다. 도움을주기 위해'f : debug'를 사용할 수 있습니다 (인라인 부분을'f : debug'에 넣고 유체 코드가 있으면 구문 오류가 있음). –

+0

첫 번째 단계에서 사용하지 않기 때문에 길이 부분을 가져갔습니다. "{car : CarInfo}"(13 자) –