我是symfony2中的一个新开发者,所以我很痛苦地转换一个对象数组,我从一个数组中的控制器中得到了我的树枝上的js。
问题是我有一个数组数组:这里有一个例子
$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 :(得分:1)
在php中以你想要的格式获取数组可能会更容易,然后将其作为json回显:
{% autoescape false %}
var jsflights = {{ phpflights|json_encode() }};
{% endautoescape %}
在上面的例子中,我假设一个变量$ phpflights,是一个你希望传递给视图的格式的php数组。 上面的代码在视图中,并创建一个与php数组结构相同的javascript数组jsflights。
这样您就不需要两次编写数组代码了。
答案 1 :(得分:0)
您的原始模板代码看起来像包含PHP,这在twig模板中是不允许的。
更一般地说,模板应该用于呈现数据,并且可能对其进行最少的重写以帮助实现。对于你正在做的事情,看起来你最好在PHP控制器中做这件事,然后将已经准备好显示的结果传递给twig。