/** * Creates a new Registration model. * If creation is successful, the browser will be redirected to the 'view' page. * @return mixed */ public function actionCreate($id) { $model = new Registration(); $model->competition_id = $id; if ($model->load(Yii::$app->request->post()) && $model->save()) { return $this->redirect(['view', 'id' => $model->id]); } else { return $this->render('create', ['model' => $model]); } }
/** * Register golfer to event * * @var Golfer $golfer Golfer to register * @return Registration */ function register($golfer, $force = false) { $canRegister = true; // Yii::trace($this->id.' for '.$golfer->id, 'Competition::register'); if ($parent = $this->parent) { $canRegister = $parent->register($golfer, $force); } if ($canRegister && ($force || $this->canRegister($golfer))) { $model = Registration::findOne(['golfer_id' => $golfer->id, 'competition_id' => $this->id]); if (!$model) { $model = new Registration(); $model->golfer_id = $golfer->id; $model->competition_id = $this->id; } // force can only be used by starters $model->status = $force ? Registration::STATUS_REGISTERED : Registration::STATUS_PENDING; $model->save(); Yii::trace('OK for ' . $this->id . ' for ' . $golfer->id, 'Competition::register'); return true; } Yii::trace('NOT for competition ' . $this->id . ' for golfer ' . $golfer->id, 'Competition::register'); return false; }