2012-10-21 66 views
0

我是symfony2中的一個新開發者,所以我很痛苦轉換一個對象數組,我至少從我的樹枝中的js數組中獲得controlleur。錯過:在樹枝屬性編號後

的問題是,我有數組的數組:在樹枝

這裏的例子

$Flight = array 
       (
       '1' => array 
        (
        '5' => array 
         (
         'LFID' => '6684', 
         'DepartureDate' => '2012-10-22T12:30:00', 
         'ArrivalDate' => '2012-10-22T14:00:00', 
         'BaseFareAmtInclTax' => '343.50', 
         'ReturnFlightSegmentDetails' => 

        ), 
        '10' => array 
         (
         'LFID' => '6684', 
         'DepartureDate' => '2012-10-23T12:30:00', 
         'ArrivalDate' => '2012-10-23T14:00:00', 
         'BaseFareAmtInclTax' => '243.50', 
         'ReturnFlightSegmentDetails' => 
         array 
          (
          '150' => array 
           (
           'LFID' => '6647', 
           'DepartureDate' => '2012-10-24T12:25:00', 
           'FareTypeName' => 'Change', 
           'FareTypeID' => '22', 
           'BaseFareAmtInclTax' => '198', 
          ) 

         ) 
        ) 
       ), 
      ); 

我做:

{% for flight in flights%} 
        var $FlightSegment = new Array(); 
        $flight.push({ 
         DepartureDate:"{{flight.DepartureDate}}", 
         ArrivalDate:"{{flight.ArrivalDate}}", 
         Amount:"{{flight.BaseFareAmtInclTax}}", 
         {% for ReturnFlightSegmentDetails in flight.ReturnFlightSegmentDetails %} 
          $FlightSegment.push({ 
           ReturnFlightSegmentDetails :"{{ReturnFlightSegmentDetails.DepartureDate}}", 
          }); 
         {% endfor %} 

        }); 


       {% endfor %} 

而行「$ FlightSegment .push「產生一個錯誤,這是」缺少:屬性ID後「

+0

您編寫的代碼會爲每個航班重新聲明「$ FlightSegment」。然後,它會在您爲外部'.push()'調用構建的對象字面值內執行內部'.push()'調用*。 – Pointy

回答

1

它可能更容易得到陣列中你在PHP所需的格式,然後回聲它作爲JSON:

{% autoescape false %} 
    var jsflights = {{ phpflights|json_encode() }}; 
{% endautoescape %} 

在上面的例子我假定一個變量$ phpflights,是一個php陣列中的格式要你已經傳遞給視圖。 上面的代碼在視圖中,並創建一個與php數組結構相同的javascript數組jsflights。

這樣你就不需要寫數組代碼兩次了。

+0

非常感謝你的回答我很感激^^,所以要操縱屬性ReturnFlightSegmentDetails我會像擁有一個js數組一樣行事?而已 ? – fbh

+0

好吧!它的工作來回應它,但如果我想操縱由json_encode返回的字符串的元素如何解析它?我不明白事情:'( – fbh

+0

它將是一個javascript數組,操縱它,就像你要一個數組。 – wgcrouch

0

您的原始模板代碼看起來像包含PHP,這是不允許在樹枝模板中使用的。

更一般地說,模板應該用於呈現數據,並且可能對其進行最小程度的重構來輔助。對於你正在做的事情,看起來你最好在PHP的控制器中完成它,然後將已經準備好顯示的結果傳遞給分支。

+0

我知道我完全理解你說了什麼,但我是一個大項目的一部分nd我的老闆會在客戶端做一些部分,所以我必須得到PHP數據nd轉換成js,所以我可以在一個樹枝文件中操作它 – fbh

+0

哦,我明白你現在在做什麼,我沒有仔細看看模板中的代碼,所以沒有意識到它是JS(在變量前面看到$)並假設PHP)。 – Ethan