我不知道t know howto accessing data from a related table (with ActiveRecords) and use all those records as a dataSource for a CActiveDataProvider. The main idea is that a user must be able to
CRUD`只有他的課程中的課程。以多對多和一對多的關係訪問數據
我有以下表:
user (id, name, age, email...),
user_class (user_id, class_id),
class (id, name, description, ...),
course (id, class_id, name, description);
用戶和Class表具有多對多和類與課程表具有一對多關係
我還定義了以下關係:
用戶型號關係:
'classes'=>array(
self::MANY_MANY,
'Class',
'user_class(user_id, class_id)',
),
'courses'=>array(
self::HAS_MANY,
'Course',
array('class_id','id'),
'through'=>'classes'
)
間
級車型的關係:
'users' => array(
self::MANY_MANY,
'User',
'user_class(class_id, user_id)'
),
'courses' => array(
self::HAS_MANY,
'Class',
'class_id'
),
場模型的關係:
'class' => array(
self::BELONGS_TO,
'Class',
'class_id'
)
在我CourseController
,在actionManage()
我有這樣的事情:
public function actionManage() {
$currentUser = User::model()->with('classes', 'courses')->findByPk(Yii::app()->user->id);
$userCourses = $currentUser->classes->courses; //--> NO courses!!!
/* add users` courses to an CActiveDataProvider //--> how to do this?!
}
'$ userCourses = $ currentUser-> classes-> courses;'不起作用,因爲'$ userCourses = $ currentUser-> classes'返回一個數組,因此沒有關係'courses' – Tim 2013-04-26 17:36:03