/**
  * Finds the Family model based on its primary key value.
  * If the model is not found, a 404 HTTP exception will be thrown.
  * @param integer $id
  * @return Family the loaded model
  * @throws NotFoundHttpException if the model cannot be found
  */
 protected function findModel($id)
 {
     if (($model = Family::findOne($id)) !== null) {
         return $model;
     } else {
         throw new NotFoundHttpException('The requested page does not exist.');
     }
 }
 public function actionUpdate()
 {
     $id = Yii::$app->user->identity->family_id;
     $model = Family::findOne($id);
     if ($model->login_user_id) {
         $user = User::findOne($model->login_user_id);
     } else {
         $user = new User();
     }
     if ($model->load(Yii::$app->request->post())) {
         $transaction = Yii::$app->db->beginTransaction();
         if ($model->login_status == \app\enum\UserStatus::Ativo && $model->user_name) {
             //Cria novo utilizador
             $user = new \app\models\User();
             $user->username = $model->user_name;
             $user->email = $model->user_name;
             $user->status = \app\enum\UserStatus::Ativo;
             $user->family_id = 0;
             //sem familia atribuida
             $user->family_login_user = $model->id;
             //Utilizador familiar
             if ($user->validate() && $user->save()) {
                 $model->login_user_id = $user->id;
                 Yii::$app->getSession()->setFlash('success', 'Foi criado com sucesso o utilizador familiar.<br>' . 'A partir deste momento poderá usar este utilizador para ver eventos e tarefas da família,' . ' mesmo que não sejam membros do MemoBoard Familiar.');
             } else {
                 $err = '<br>';
                 foreach ($user->errors as $field => $error) {
                     $err .= '<br> <li> ' . $error[0] . '</li>';
                 }
                 //$err = implode('<br>',$user->errors);
                 Yii::$app->getSession()->setFlash('danger', 'O utilizador não pode ser criado porque não passou na validação: ' . $err);
                 $this->layout = 'main_user';
                 return $this->render('update', ['model' => $model, 'user' => $user]);
             }
         }
         if ($model->save()) {
             $transaction->commit();
             return $this->redirect('/user/index');
         } else {
             var_dump($model->errors);
             die;
             $transaction->rollBack();
         }
     }
     $this->layout = 'main_user';
     return $this->render('update', ['model' => $model, 'user' => $user]);
 }