Unfortunately I have not found a solution and sending more details to try to help.
Database:
Training’s model:
class Training {
(...)
public function relations() {
return array(
'companys' => array(self::MANY_MANY, 'Company', 'rel_company_training(id_company, id_training)'),
);
}
}
Company’s model:
class Company {
(...)
public function relations() {
return array(
'trainings' => array(self::MANY_MANY, 'Training', 'rel_company_training(id_company, id_training)'),
);
}
}
So it represent the employees of a company who want to participate in the training!
Anyway, I wouldn’t store any additional info in a relation-table, but create a model for this!
cheers
UPDATE: Shouldn’t the MANY MANY relation within Training not be defined as:
class Training {
(...)
public function relations() {
return array(
'companys' => array(self::MANY_MANY, 'Company', 'rel_company_training(id_training, id_company)'),
);
}
}
class Training {
...
public function relations() {
return array(
'companyTrainings' => array(self::HAS_MANY, 'CompanyTraining', 'id_training'),
'companies' => array(self::HAS_MANY, 'Company', 'id_company', 'through' => 'companyTraining'),
);
}
}
Company model:
class Company {
...
public function relations() {
return array(
'companyTrainings' => array(self::HAS_MANY, 'CompanyTraining', 'id_company'),
'trainings' => array(self::HAS_MANY, 'Training', 'id_training', 'through' => 'companyTraining'),
);
}
}
CompanyTraining model:
class CompanyTraining {
...
}
Using:
$models=Company::model()->with('companyTrainings','trainings')->findAll();
or
$models=Training::model()->with('companyTrainings','companies')->findAll();
number_employees will be availible in $model->companyTrainings array in both situations.
sir creocoder, where should I code this? on what form? thanks
$models=Company::model()->with('companyTrainings','trainings')->findAll();
or
$models=Training::model()->with('companyTrainings','companies')->findAll();
number_employees will be availible in $model->companyTrainings array in both situations.