这些是我拥有的数据库表:
旅行
- ID
- 容量
- ...
旅行登记
- ID
- 行程ID
- 名
- 姓
- 电话
- ...
- 注册状态
sql查询
我想要一个 sql 查询,它可以为我提供有足够空闲容量的行程。有效注册的 tripRegisteration.registerationState 是approved
. 这是 sql 查询:
SELECT t.*,count(*) as registeredNum
FROM trip t
left join
(select *
from trip_registeration tr
where tr.registerationState="approved"
) trlist
on t.id =trlist.tripId
group by t.id
having t.capacity>registeredNum
Yii 代码
DBTrip
这是在activerecord 模型中获取数据提供者的 Yii PHP 代码
public function getAvailableTripsDataProvider()
{
$criteria = new CDbCriteria();
$criteria->select = 't.*, COUNT( * ) AS registeredNum';
$criteria->join =
'left join (select *
from trip_registeration tr
where tr.applicationState="initialized"
) trlist
on t.id =trlist.tripId';
$criteria->group = 't.id';
$criteria->having = 't.capacity > registeredNum';
return new CActiveDataProvider ( 'DBTrip', array (
'criteria' => $criteria
)
}
问题
一切都很好,除了我无法registerednNum
在 CGridView 中获取值,'value' => 'var_dump($data)'
只显示相应 DBTrip Row 的属性,并且它没有任何关于registeredNum
. 我如何在 CGridView 中显示它?