Получить дочерние строки в массиве на основе родительской таблицы в YII - PullRequest
1 голос
/ 10 января 2012

таблица ученика:

имя студента
-------------- -----
1 аааа
2 bbbb
3 cccc

таблица предметов:

subject_id student_id sub1 sub2 sub3
----------- ---------- ----- ---- ----
1 1 30 40 60
2 1 40 13 88
3 1 50 76 45
4 1 40 65 87
5 2 30 34 78
6 2 40 54 76
7 2 70 45 67

Отношение один-ко-многим

У меня есть список студентовформа.когда я нажимаю на edit для студента 1

, я хочу получить все дочерние строки, связанные с student1 в массиве.

Как мне это сделать.любая помощь приветствуется.

1 Ответ

0 голосов
/ 10 января 2012

Откройте модель таблицы ученика, проверьте функцию отношений ..

public function relations() {        
    return array(
        'subjects' => array(self::HAS_MANY, 'Subject', 'student_id'),
 ......
    );
 }

, где Subject - название модели вашей предметной таблицы.

// List data need when populating dropdown from database values
<?php echo $form->dropDownList($model,'subject_id', CHtml::listData($model->subjects,'subject_id','subject_name'));?>

Здесь $ modelявляется моделью учащегося в представлении формы учащегося, функция listdata выведет список всех предметов учащегося, а функция dropDownList выполнит их выпадающий список ...., если вам удобно показывать предметы по идентификатору, тогда замените subject_name наsubject_id, иначе Вам нужен заголовок темы в таблице тем.

Надеюсь, я решил вашу проблему ... Еще больше ссылок прочитайте отношения, выпадающий список и список данных в документации yii.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...