1
我在Agent模型中有一個GetStudents函數。在那裏我找到與代理有關的學生。YII中的關係問題
但我想向學生展示的更多的字段從另一個表 如
**Agent table** (agent has students)
agent_id
**student table**
STUDENTID pkey
agent_id
**relation table** (this table creates relation between student and household)
StudentID HOUSEHOLDID
**HOUSEHOLD TABLE**
HouseHOLDID Householdname
我想,當我獲取所有學生的信息獲取householdname。
真的希望bazzare給我,我新手警予
我的代理模式的功能。
public static function getStudents($id) {
$relationships = Relationship::model()->findAll('type = :type AND source = :agent_id', array(':type' => 2, ':agent_id' => $id));
//$relationships=sort($relationships);
// Generate relationship array
//print_r($relationships);
foreach ($relationships as $relationship) {
$in[] = $relationship->destination;
}
// Generate db condition
$criteria = new CDbCriteria;
if (! isset($in) || ! is_array($in) || sizeOf($in) == 0) {
$in[] = -999;
}
$criteria->addInCondition('StudentID', $in, 'OR');
return new CActiveDataProvider('Student', array(
'criteria' => $criteria,
'sort'=>array('defaultOrder'=>array(
'StudentID'=>CSort::SORT_DESC,
)),
));
}
我的代碼在通過傳遞ID進去
<?php $this->widget('zii.widgets.CDetailView', array(
'data' => $model,
'attributes' => array(
array(
'label' => 'Agent Details',
'type' => 'raw',
'value' => '',
'cssClass' => 'heading',
),
'agent_id',
'user.email',
'first_name',
'last_name',
'company',
'phone',
),
)); ?>
任何幫助將大大appreicated獲取數據。
感謝 抗體
嗨感謝您的快速回復..但關係表在哪裏使用?我有一個與 StudentID HOUSEHOLDID字段的關係表,它使學生和家庭之間發生關係。 再次感謝 ab – abnab
關係是你的模型和('學生','家庭')與關係模型建立關係..在這裏你的關係使用.. –
關係「學生」沒有定義在活動記錄類「關係」。 (''''''''>''),以及'(''''''''') - > findAll('type =:type AND source =:agent_id' 2,':agent_id'=> $ id)); \t \t ' ' 公共函數關係(){ \t \t返回陣列( \t \t \t '用戶'=>數組(自:: HAS_ONE, '用戶', 'USER_ID'), \t \t「學生'=> array(self :: BELONGS_TO,'Student','StudentID'), 'household'=> array(self :: BELONGS_TO,'Household','HouseholdID'), ); \t}' – abnab