データベースに、グリッド ベースの情報テーブルを表示するために必要な 2 つのテーブルがあります。現在、私が持っているコードは、1 つのテーブルの情報のみを表示します (以下のコード)
<?php $this->widget('zii.widgets.grid.CGridView', array(
'id'=>'aux-room-grid',
'dataProvider'=>$model->search(),
'filter'=>$model,
'columns'=>array(
'room',
'capacity',
array(
'class'=>'CButtonColumn',
),
),
)); ?>
容量があるので、2 番目のテーブルにある部屋番号に関連付けられている行数に基づいて、占有率も取得したいと考えています。PHP を使用しない場合、これはかなり単純に思えるかもしれませんが、私は Yii を初めて使用し、別のモデルでカウントを実行する方法を理解していません。占有率を調べるには、テーブル 1 の最初の列である部屋番号を使用する必要があります。
簡単に言えば、最初の列から部屋番号に関連付けられた行を count() する必要があります。部屋と容量の元のテーブルの内容を表示する必要がありますが、これら 2 つの列の間に占有率があります。Yii を使用してこれを行うにはどうすればよいでしょうか。
2 つのテーブルの 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;