private function saveModelNewMember($model, $url) { //O user_id tem o mail do utilizador que se pretende juntar $user = \app\models\User::findByUsername($model->user_id); //Limpa valor $model->user_id = ''; if ($user) { $res = \app\models\FamilyMember::joinMemberToFamilyAndSave($model, $user->id, yii::$app->user->identity->family_id); if (is_bool($res) && $res) { return $this->redirect(['index']); } //Elimina o valor fornecido $model->user_id = ''; //coloca erro $model->addError('user_id', $res); //mostra return $this->render($url, ['model' => $model]); } if ($model->validate() && $model->save()) { return $this->redirect(['index']); } return $this->render($url, ['model' => $model]); }
public function actionInit() { $res = ''; $model = new FamilyMember(); if ($model->load(Yii::$app->request->post())) { $family_login = Yii::$app->request->post('login'); $family_pass = Yii::$app->request->post('password'); if ($family_login && $family_pass) { $user = \app\models\User::findByUsername($family_login); //&& $user->validatePassword($family_pass) if ($user && $user->family_login_user) { $res = \app\models\FamilyMember::joinMemberToFamilyAndSave($model, Yii::$app->user->getId(), $user->family_login_user); if (!is_string($res)) { Yii::$app->getSession()->setFlash('success', '<h2>Sucesso !!!</h2>' . 'Passa a partir deste momento a fazer parte da família <b>' . $model->family->name . '</b>' . '<br>' . '<br>' . 'Tem ao seu dispor várias funcionalidades que foram pensadas especificamente para si como membro de uma família.' . 'Explore os cantos da casa e caso tenha alguma dúvida use o ' . '<a class="" href="/site/contact">formulário</a> que também pode ser acessado no menu "Contacto".'); return $this->redirect("/site/message"); } } } Yii::$app->getSession()->setFlash('danger', '<h2>Algo correu mal !!!</h2>' . 'Não foi possível adiciona-lo como membro da família pretendida.' . '<br>' . '<br>' . '<b>' . $res . '</b>' . '<br>' . '<br>' . 'P.f. confira dados e tente novamente.' . '<br>' . '<br>' . '<a class="btn btn-info" href="javascript:history.back()">Tentar novamente</a>'); return $this->redirect("/site/message"); } return $this->render('./init', ['model' => $model]); }