2014-02-13 125 views
0

,所以我有一個關聯數組{$ join_options},其中有5個條目已經在其中。創建與smarty的另一個關聯數組的關聯數組

如果我自卸$連接選項,它會顯示:

19 => Some text for 19 
20 => Some text for 20 
22 => Some text for 22 
24 => Some text for 24 
26 => Some text for 26 

好爲止。

如果我只是用{$join_options.20}將打印

一些文本20

但後來我試試這個小玩意:

{assign var=modified_join_options values=[ 
20 => '$join_options.20', 
24 => '$join_options.24', 
26 => '$join_options.26', 
]} 

,我得到這個錯誤:

syntax error: invalid attribute name: ''$join_options.20',' (Smarty_Compiler.class.php, line 1550) 

我已經嘗試了多種不同的方法來輸入$ join_options.20我試過'''沒有{}而沒有Wat嗎?

編輯:我已經嘗試添加反引號,使用值而不是值,刪除最後一個逗號。現在,我得到:

Smarty的錯誤:在網站聯接線116]:語法錯誤:無效的屬性名稱: '='(Smarty_Compiler.class.php,行1550)

回答

0

所以,我結束了剛剛創建Smarty的功能,我在傳遞聰明的對象和數組作爲參數。在插件的函數內部,我做了我的操作,然後使用smarty對象來使用foreach鍵值循環來分配我想要的新數組的選項,如語句,strpos()和strtolower()函數。很標準的PHP的東西。我不知道這是否是smarty的標準程序,但是我發現了一些我正在使用的軟件的有用文檔,並告知這是一個選項。

+0

我應該將我的答案標記爲答案,即使它沒有直接解決問題嗎? –

+0

如果它爲你工作,那麼我想接受你的答案。大部分時間最好在PHP中完成工作,然後輸出到smarty,因爲它是一個模板引擎。另外如果你使用smarty 3,它有更簡單的方法來創建數組。 –

0

這是因爲它有一個.在裏面。你必須用backticks包圍變量。嘗試這個。

{assign var=modified_join_options values=[ 
20 => '`$join_options.20`', 
24 => '`$join_options.24`', 
26 => '`$join_options.26`', 
]} 

http://www.smarty.net/docsv2/en/language.syntax.quotes.tpl

+0

我現在正在:Smarty錯誤:[in site:join line 116]:語法錯誤:無效屬性名稱:'='(Smarty_Compiler.class.php,第1550行) –

+0

您使用的是smarty 2還是3? –

+0

smarty 2.yada yada yada –

0

使用價值,刪除引號和最後一個逗號,它會工作:

{assign var=modified_join_options value=[ 
20 => $join_options.20, 
24 => $join_options.24, 
26 => $join_options.26 
]} 
+0

我現在得到了Smarty錯誤:[in site:join line 116]:syntax error :無效的屬性名稱:'='(Smarty_Compiler.class.php,第1550行) –

+0

您使用的是smarty v3或2嗎? – Borgtex

+0

2.6.26是聰明的版本 –