我的数据库中有两个表,用于显示基于网格的信息表。目前我的代码只显示一张表的信息(代码如下)
<?php $this->widget('zii.widgets.grid.CGridView', array(
'id'=>'aux-room-grid',
'dataProvider'=>$model->search(),
'filter'=>$model,
'columns'=>array(
'room',
'capacity',
array(
'class'=>'CButtonColumn',
),
),
)); ?>
我因为我有容量,所以我也想根据与第二张桌子上的房间号相关联的行数来获得入住率。我知道如果不使用 PHP,这可能看起来很简单,但我是 Yii 的新手,不明白如何在另一个模型上执行计数。要找到入住人数,我需要使用表 1 的第一列的房间号。
简单地说:我需要从第一列开始 count() 与房间号相关的行。我需要显示房间和容量的原始表格内容,但这两列之间有占用。我将如何使用 Yii 做到这一点?
两个表的 SQL:
CREATE TABLE IF NOT EXISTS `cs_people`.`aux_room` (
`room` VARCHAR(20) NOT NULL ,
`capacity` VARCHAR(20) NULL ,
PRIMARY KEY (`room`) )
ENGINE = InnoDB;
CREATE TABLE IF NOT EXISTS `cs_people`.`room_desk` (
`userid` VARCHAR(8) NOT NULL ,
`room` VARCHAR(20) NULL ,
`desk` VARCHAR(250) NULL ,
PRIMARY KEY (`userid`) ,
INDEX `room_desk.room_idx` (`room` ASC) ,
CONSTRAINT `room_desk.userid`
FOREIGN KEY (`userid` )
REFERENCES `cs_people`.`people` (`userid` )
ON DELETE CASCADE
ON UPDATE CASCADE,
CONSTRAINT `room_desk.room`
FOREIGN KEY (`room` )
REFERENCES `cs_people`.`aux_room` (`room` )
ON DELETE CASCADE
ON UPDATE CASCADE)
ENGINE = InnoDB;