У меня есть функция 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 для меня, как я новичок в YII
МОЕ функцию в модели агента.
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.
Благодаря Ab
привет за быстрый ответ .. но где же используется таблица отношений? У меня есть таблица отношений с полями StudentID HOUSEHOLDID, которые делают связь между учеником и домохозяйством. ab – abnab
Отношения - это ваша модель и с («ученик», «домохозяйство»), создающая отношение с моделью отношений .. здесь ваше отношение используется в ... –
Отношение «ученик» не определено в классе активной записи «Отношения» ».
'$ отношения = Связь :: model() -> with (' student ',' domestic ') -> findAll (' type =: type AND source =: agent_id ', array (': type '=> 2, ': agent_id' => $ id)); \t \t ' ' общественная функция отношений() { \t \t возвращение массива ( \t \t \t 'пользователь' => массив (само :: HAS_ONE, 'Пользователи', 'user_id'), \t \t «студент '=> array (self: BELONGS_TO,' Student ',' StudentID '), ' family '=> array (self: BELONGS_TO,' Домашнее хозяйство ',' бытовая идентификация '), ); \t} ' – abnab