public function afterSave($insert, $changedAttributes) { parent::afterSave($insert, $changedAttributes); if ($insert) { // if Participant is added // add MeetingPlaceChoice & MeetingTimeChoice this participant $mt = new MeetingTime(); $mt->addChoices($this->meeting_id, $this->participant_id); $mp = new MeetingPlace(); $mp->addChoices($this->meeting_id, $this->participant_id); } }
public static function addChoices($meeting_id, $participant_id) { $all_places = MeetingPlace::find()->where(['meeting_id' => $meeting_id])->all(); foreach ($all_places as $mp) { MeetingPlaceChoice::add($mp->id, $participant_id, 0); } }
/** * Displays a single Meeting model. * @param integer $id * @return mixed */ public function actionView($id) { $timeProvider = new ActiveDataProvider(['query' => MeetingTime::find()->where(['meeting_id' => $id])]); $noteProvider = new ActiveDataProvider(['query' => MeetingNote::find()->where(['meeting_id' => $id])]); $placeProvider = new ActiveDataProvider(['query' => MeetingPlace::find()->where(['meeting_id' => $id])]); $participantProvider = new ActiveDataProvider(['query' => Participant::find()->where(['meeting_id' => $id])]); $model = $this->findModel($id); $model->prepareView(); return $this->render('view', ['model' => $model, 'participantProvider' => $participantProvider, 'timeProvider' => $timeProvider, 'noteProvider' => $noteProvider, 'placeProvider' => $placeProvider]); }
/** * Creates data provider instance with search query applied * * @param array $params * * @return ActiveDataProvider */ public function search($params) { $query = MeetingPlace::find(); $dataProvider = new ActiveDataProvider(['query' => $query]); $this->load($params); if (!$this->validate()) { // uncomment the following line if you do not want to any records when validation fails // $query->where('0=1'); return $dataProvider; } $query->andFilterWhere(['id' => $this->id, 'meeting_id' => $this->meeting_id, 'place_id' => $this->place_id, 'suggested_by' => $this->suggested_by, 'status' => $this->status, 'created_at' => $this->created_at, 'updated_at' => $this->updated_at]); return $dataProvider; }
/** * @return \yii\db\ActiveQuery */ public function getMeetingPlaces() { return $this->hasMany(MeetingPlace::className(), ['place_id' => 'id']); }
/** * @return \yii\db\ActiveQuery */ public function getMeetingPlace() { return $this->hasOne(MeetingPlace::className(), ['id' => 'meeting_place_id']); }
/** * Finds the MeetingPlace model based on its primary key value. * If the model is not found, a 404 HTTP exception will be thrown. * @param integer $id * @return MeetingPlace the loaded model * @throws NotFoundHttpException if the model cannot be found */ protected function findModel($id) { if (($model = MeetingPlace::findOne($id)) !== null) { return $model; } else { throw new NotFoundHttpException('The requested page does not exist.'); } }