2015-06-30 39 views
0

我想將鍵和值添加到twig文件中的數組中。但我現在面臨以下問題"Twig_Error_Syntax: A hash key must be a quoted string or a number"將鍵和值合併到Twig文件中的數組中

{% set phoneCount = 0 %} 
{% set phoneNumbers = {} %} 
{% for currPhone in currBroker.phones %} 
    {% if (currPhone.type == 'Work' or currPhone.type == 'Mobile') and phoneCount <= 2 and currPhone.number !='' %} 
     {% set phoneCount = phoneCount + 1 %}     
     {% set phoneNumbers = phoneNumbers|merge({ currPhone.type:currPhone.type }) %} 
    {% endif %} 
{% endfor %} 
{{ phoneNumbers|print_r }} 

我只需要合併鍵和值到數組的語法。 我試圖通過給靜態輸入和它的作品

{% set phoneNumbers = phoneNumbers|merge({ 'work':'(011)112-1233' }) %} 

但它不是工作中對動態輸入。請幫忙!!

+1

拇指的一個有用的規則是創建一個任何時候你需要在非常簡單的if語句之外應用一些顯示邏輯。即使你把它與樹枝一起工作,維護它也是不值得的。 {%set phoneNumbers = currBroker.phones | extract_phone_numbers%}將爲您節省很多麻煩。 – Cerad

回答

3

你要包裝你的鑰匙在括號:

{% set phoneNumbers = phoneNumbers|merge({ (currPhone.type) : currPhone.type }) %} 

測試和工作示例:

{% set currPhone = {type: 'test'} %} 
{% set phoneNumbers = {} %} 
{% set phoneNumbers = phoneNumbers|merge({ (currPhone.type) : currPhone.type }) %} 
{% dump(phoneNumbers) %} 

我得到:

array:1 [▼ 
    "test" => "test" 
] 
+0

不工作。顯示錯誤:Twig_Error_Syntax:哈希鍵必須是帶引號的字符串或數字(意外標記「標點符號」的值「(」 – sAcH

+0

我更新了我的答案和一個工作示例,沒有問題在我那邊使用該代碼 –

+0

謝謝!它的工作現在。 – sAcH