Я пытаюсь сделать следующее:
У меня есть 3 модели: Clinic
, Pack
и OfferedTreatment
.
Pack
и OfferedTreatment
связаны с Clinic
от FK clinic_id
и обе модели связаны друг с другом моделью соединения: Pack_OfferedTreatment
(pack_id
, offeredTreatment_id
).В одной упаковке может быть несколько OfferedTreatments
.
с ClinicController
Я хочу, чтобы определенная клиника и определенная упаковка относились к этой клинике, и чтобы все связанные offeredTreatments
показывали представление
результат, полученный от следующей функции: возвращает мне ВСЕ offeredTreatments
, связанное с клиникой, но не с пакетом ... что я делаю не так?
/**
* @param $clinicId
* @param $packId
* @return array
* @throws NotFoundHttpException
*/
public function actionPackOfferedTreatments($clinicId, $packId)
{
$clinicId = (int)$clinicId;
$packId = (int)$packId;
// Find model of the clinic
$model = $this->findModel($clinicId);
// pack offeredTreatments:
$packOfferedTreatmentDataProvider = new ActiveDataProvider([
'query' => $model->getOfferedTreatments()
->innerJoin('pack_offeredTreatment', false)
->where(['pack_offeredTreatment.pack_id' => $packId]),
'pagination' => false,
'sort' => [
'defaultOrder' => [
'order' => SORT_ASC
]
]
]);
Yii::$app->response->format = Response::FORMAT_JSON;
return $packOfferedTreatmentDataProvider->getModels();
}