我对 Symfony2 还是很陌生,所以请放轻松。我正在尝试遍历一个航班表(用于机票预订系统),其中包含几个相关字段,例如航空公司和机场。我在自定义存储库中使用以下方法:
public function getAllFlights($limit = 100)
{
$dql = 'SELECT f FROM Flightcase\BookingBundle\Entity\Flight f';
$query = $this->getEntityManager()->createQuery($dql);
$query->setMaxResults($limit);
return $query->getResult();
}
并且 getAllFlights() 被传递给我的 Twig 模板,如下所示:
$flights = $em->getRepository('FlightcaseBookingBundle:Flight')->getAllFlights();
return $this->render('FlightcaseBookingBundle:Flight:list.html.twig', array('flights' => $flights));
Twig 模板只是简单地遍历 $flights 集合中的项目,如下所示:
{% for flight in flights %}
<tr>
<td>{{ flight.airline }}</td>
<td>{{ flight.origin }}</td>
<td>{{ flight.destination }}</td>
<td>{{ flight.dateFrom }}</td>
<td>{{ flight.timeFrom }}</td>
<td>{{ flight.dateTo }}</td>
<td>{{ flight.timeTo }}</td>
</tr>
{% endfor %}
但我得到一个丑陋、神秘的异常,告诉我“Proxies\FlightcaseBookingBundleEntityAirlineProxy 类的对象无法转换为字符串”,这让我相信我需要获取 Airline 对象中的特定属性,例如 IATA 代码以输出为字符串。但是如何访问 Twig 模板中的 $airline->getIataCode() 呢?或者我的存储库中有没有办法将相关对象转换为字符串?