2011-04-18 4 views
1

난이 제한을 우회 할 수있는 방법이이 오류다차원 배열을 클래스에 인수로 할당하는 방법은 무엇입니까? 내가 클래스에 다차원 배열을 할당하려고하면

  {Widgets->Widget 
        media='videos' 
        filters=Array('a' => 'b', 'c' => 'd') 
      } 

"{assign var='X' value = Array('a' => 'b', 'c' => 'd')}" - Unexpected " => ", expected one of: "","" , ")"' 

this doesn't work as well 
      filters['a']='b' 
      filters['c'] = 'd' 

거야? 내가 사용하고있는 똑똑한 버전이 최신 버전입니다.

문서는 그것에 대해 매우 분명하지 않다 : http://www.smarty.net/docs/en/advanced.features.objects.tpl

관련

+0

괜찮아요, 나는 2 개의 배열을 작성하여 이것을 달성하는 바보 같은 방법을 찾았습니다 filters_keys = 'a'filters_values ​​= 'b'그리고 나서 배열을 결합하십시오 – sathia

답변

0

나는 그것을 유식 템플릿의 배열을 할당하는 것이 가능하다조차 확실하지 않다. 필자는 항상 PHP 코드에서 배열을 인스턴스화하여이를 우회했습니다. 그런 다음 PHP의 객체에 할당 할 수 있습니다. $ smarty-> assign ("object", $ objectWithArray);

+0

확실하지만 디자이너가 모듈을 빌드 할 수 있도록 의도 한 위젯입니다 비행. 그래서 매개 변수를 받아들이고 출력을 렌더링하는 PHP의 거대한 클래스가 있습니다 – sathia

+0

여전히 Smarty를 위해 PHP를 호출하는 방법이 있어야합니다 ... 나는 smarty에 할당하는 모든 값을 좋아하지 않습니다. 정보를 표시하고 레이아웃을 표시하므로 PHP 코드 내에서 모든 로직을 처리 할 수 ​​있습니다 ... 사용자 입력에 템플릿에서 호출되는 작업이 있거나 그렇게 할 수있는 곳이 있다면 ... – shadyyx

+0

나는 그것을 알고, 논리는 PHP 안전하고 소리에 있습니다. smarty는 클래스에 인수를 전달하는 것일 뿐이므로이 클래스는 다른 템플릿을 파싱하고 출력을 렌더링합니다. 매개 변수가 문제가 아니라면 예외를 던지기 만하면됩니다. – sathia

관련 문제