2011-04-18 28 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' 

是有辦法繞過這個限制? 我使用的smarty版本是最新版本。

的文件是不是說得很清楚: http://www.smarty.net/docs/en/advanced.features.objects.tpl

問候

+0

好吧,我發現了一個愚蠢的方法來創建2個數組來完成這個過濾器='a'filters_values ='b'然後array_combine他們 – sathia 2011-04-18 15:16:21

回答

0

我不知道,如果它甚至有可能在分配模板的Smarty的數組。我一直通過在PHP代碼中實例化一個數組來避免這種情況,然後您可以將它分配給PHP中的一個對象,然後調用$ smarty-> assign(「object」,$ objectWithArray);

+0

肯定,但這是一個小部件,我的意圖是允許設計人員構建模塊飛行。所以我有一個龐大的類接受參數並呈現一個輸出的PHP – sathia 2011-04-18 15:20:24

+0

仍然必須有一種方法如何調用PHP來爲Smarty做這些...我不喜歡在smarty中指定任何值 - smarty應該只用於提交信息和拖延佈局,所以你要在你的PHP代碼中做所有你的邏輯... 如果它有一些操作從用戶輸入模板調用或所以這是一個地方做... – shadyyx 2011-04-18 15:23:14

+0

我意識到這一點,邏輯是在PHP安全和健全。 smarty只是將參數傳遞給一個類,這個類然後解析另一個模板並呈現輸出。它只是一個更簡單的方法來委託工作給設計師,如果參數不行的話,我會拋出一個異常,直到他們明確表示 – sathia 2011-04-18 15:38:57