是否可以在smarty中的配置文件中定義數組?例如我想要在配置文件(位於/ configs)中有小數據庫 - 很少(約20)產品說明:標題,價格,說明。之後,我想通過foreach或部分列出它。 如何在沒有MySql或其他數據庫引擎的Smarty中定義該數組。我可以這樣做嗎?通過配置文件在smarty中定義數組
2
A
回答
6
您可以在配置文件中定義數組,你需要設置$ config_overwrite = FALSE。 你可以看看這個頁面:config_overwrite
$smarty = new Smarty;
$smarty->config_overwrite=false;
的配置文件。
# row colors
rowColors = #FF0000
rowColors = #00FF00
rowColors = #0000FF
帶有{section}循環的模板。
<table>
{section name=r loop=$rows}
<tr bgcolor="{cycle values=#rowColors#}">
<td> ....etc.... </td>
</tr>
{/section}
</table>
0
我看了一下Smarty文檔,特別是this頁面。
我沒有看到一個數組在這裏初始化的例子,我懷疑Smarty不支持在其配置文件中初始化數組,因爲配置文件似乎是簡單的鍵值存儲。您當然可以嘗試在配置文件中初始化數組,並讓我們知道它是否適用於您。
在其他Smarty文檔頁面上,它看起來像初始化數組的首選位置在.php頁面中,用於初始化值並在顯示模板之前將其加載到模板中。
0
再次因爲格式化:
這似乎是對的。在那裏定義數組是不可能的。我什麼都試過..終於,我用分配陣列從控制器(如你所說):
PHP:
$smarty->assign('list', array(1,2,3,4));
product.conf
[1]
client=
url=
price=
description=
[2]
client=
url=
price=
description=
[3]
client=
url=
price=
description=
[4]
client=
url=
price=
description=
TPL:
{foreach from=$list item=current name=prod}
{config_load file='product.conf' section=$current}
{$smarty.config.client}
{$smarty.config.url}
{$smarty.config.price}
{$smarty.config.description}
{/foreach}
0
有沒有什麼理由需要在smarty中完成這個需求?看起來,如果你只是在PHP中創建數組並傳遞給smarty變量,它可能會更有前途。這樣,如果你離開smarty,所有的數據仍然可以訪問,無需任何重新編碼。
1
有人在smarty論壇找到了一種方法。請參閱:
相關問題
- 1. smarty迭代通過配置文件
- 2. Smarty模板 - 無法從自定義配置文件獲取值
- 3. 在播放配置文件中定義數組
- 4. ZF2:在XML配置文件中定義空數組
- 5. 如何在smarty模板文件中分配數組?
- 6. 如何在smarty模板文件中分配對象數組
- 7. 如何通過自定義屬性獲取配置文件?
- 8. PhoneGap應用程序通過配置文件進行自定義
- 9. 用Smarty循環通過二維數組
- 10. 在smarty中分配關聯數組
- 11. 在smarty中分配數組變量
- 12. 如何通過配置在Jetty中設置自定義的WebAppClassLoader?
- 13. 自定義配置文件
- 14. 如何通過配置文件配置在Jetty中登錄?
- 15. Smarty:找不到配置文件
- 16. 無法在FirefoxDriver中加載自定義配置文件:構造函數FirefoxDriver(Firefox配置文件)未定義
- 17. Smarty和配置
- 18. 在.my.cnf中配置自定義組?
- 19. asp.net中的自定義配置文件
- 20. 從配置文件中定義SqlCommand.CommandTimeout
- 21. junit配置文件中的bean定義
- 22. 定義sourceDirectory在Maven的配置文件
- 23. OSGi組件可通過Apache Felix配置
- 24. 通過配置文件指定API端點參數
- 25. Maven - 我可以在配置文件定義中引用配置文件ID嗎?
- 26. 爲結構數組分配內存(在頭文件中定義)
- 27. 通過Smarty的
- 28. 如何在ipython配置文件中定義函數?
- 29. 在servlets中定義配置文件或庫文件
- 30. 通過配置文件名稱呼叫配置文件提供程序配置
這似乎是真的。在那裏定義數組是不可能的。我試了一切..最後我用控制器分配數組(如你所建議的): php: $ smarty-> assign('list',array(1,2,3,4)); 產品。CONF [1] 客戶= BLA URL = BLA 價格= BLA 描述= BLA [2] 客戶= URL = 價格= 描述= [3] 客戶= URL = 價格= 描述= [4] 客戶= URL = 價格= 描述= TPL: {{foreach from = $ list item = current name = prod} {config_load file ='product.conf'section = $ current} {$ smarty.config.client} {$ smarty.config.url} { $ smarty.config.price} {$ smarty.config.description} {/ foreach} – quardas 2009-11-10 13:29:52