0

私は Symfony2 の新しい開発者なので、コントローラーから取得したオブジェクトの配列を小枝の JavaScript を使用して配列に変換するのに苦労しています。

問題は、配列の配列があることです:

ここに例

 $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 の後

4

2 に答える 2

1

PHPで必要な形式の配列を取得してから、jsonとしてエコーアウトする方が簡単かもしれません。

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

上記の例では、変数 $phpflights は、ビューに渡したい形式の php 配列であると想定しています。上記のコードはビューにあり、php 配列と同じ構造を持つ JavaScript 配列 jsflights を作成します。

これにより、配列コードを 2 回記述する必要がなくなります。

于 2012-10-21T18:28:46.613 に答える
0

元のテンプレート コードには、twig テンプレートでは許可されていない PHP が含まれているようです。

より一般的には、テンプレートはデータを提示するためのものであり、おそらくそれを支援するために最小限の再加工を行うためのものです. あなたがしていることについては、PHPのコントローラーでそれを行い、表示用に準備された結果を小枝に渡す方が良いようです。

于 2012-10-21T22:04:29.740 に答える