私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);
User テーブルと Class テーブルには多対多の関係があり、Class テーブルと Course テーブルには 1対多の関係があります。
また、次の関係を定義しました。
ユーザー モデルの関係:
'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?!
}