【发布时间】:2023-03-16 01:32:01
【问题描述】:
当我尝试使用 CDbCriteria 获取结果时,它没有给我预期的结果,而当我在 phpmyadmin 中运行由 CDbCriteria 生成的相同查询时,我得到了结果。我不明白发生了什么。
标准如下:-
$criteria = new CDbCriteria();
$criteria->select = 't.*c.*' ;
$criteria->join = 'LEFT OUTER JOIN `flight_cancel` as `c` on t.ticket_id = c.ticket_id';
$criteria->compare('t.booking_id', $bookingId);
$data = FlightTicket::model()->findAll($criteria);
而查询是
SELECT t.*c.* FROM `flight_ticket` `t` LEFT OUTER JOIN `flight_cancel` as `c` on
t.ticket_id = c.ticket_id WHERE t.booking_id= 'something'
当使用 CDbCriteria 时它只返回 flight_ticket 数据而不是 flight_cancel 数据。
我做错了什么??
【问题讨论】:
-
flight_cancel有 ActiveRecord 类吗?如果是这样,您是否将其定义为FlightTicket的关系? -
是的 .. flight_cancel 有一个 activerecord 类,是的,我也定义了关系
-
你的代码
FlightTicket::model()->findAll($criteria);会给你FlightTicketActiveRecords -
是的.. 那么我怎样才能用它来获取相关的表记录呢?