コード例 #1
0
 public function saveAction()
 {
     $errors = array();
     $id = $this->request->get("id");
     if ($this->request->isPost()) {
         $email = $this->request->get("email");
         $password = $this->request->get("password");
         $name = $this->request->get("name");
         $last_name = $this->request->get("last_name");
         $second_name = $this->request->get("second_name");
         $pMobile = $this->request->get("pmobile");
         $inspector = $id ? \Users::findFirst($id) : new \Users();
         if ($password and !empty($password)) {
             $inspector->password = md5($password);
         }
         // проверить существует ли такой email в БД
         $users = \Users::find(array("conditions" => "email = ?1", "bind" => array(1 => $email)));
         if ($users->getFirst()) {
             $errors[] = "Такий email вже існує в системі";
         } else {
             $inspector->email = $email;
             $inspector->name = $name;
             $inspector->last_name = $last_name;
             $inspector->second_name = $second_name;
             $inspector->pmobile = $pMobile;
             $inspector->is_active = true;
             if (!$id) {
                 $inspector->date_registration = date("Y-m-d H:i:s");
             }
             if ($id = !$inspector->save()) {
                 foreach ($inspector->getMessages() as $msg) {
                     $errors[] = $msg->getMessage();
                 }
             } else {
                 // saved is true
                 foreach ($inspector->UserGroups as $userGroups) {
                     if ($userGroups->group_id == 3) {
                         // удаляем его пренадлежность к контролеру
                         if ($userGroups->delete()) {
                             foreach ($userGroups->getMessages() as $msg) {
                                 $errors[] = $msg->getMessage();
                             }
                         }
                     }
                 }
                 $userGroups = new \UserGroups();
                 $userGroups->user_id = $inspector->id;
                 $userGroups->group_id = 3;
                 // group by inspector
                 if (!$userGroups->save()) {
                     // добавялем принадлежность к контролеру
                     foreach ($userGroups->getMessages() as $msg) {
                         $errors[] = $msg->getMessage();
                     }
                 }
             }
         }
         if ($errors === array()) {
             // redirect to dealer edit
             $this->response->redirect('/methodist/inspector/edit/' . $inspector->id . "?saved=true");
         }
     } else {
         $errors[] = "Немає данних для збереження";
     }
     $this->view->errors = $errors;
     $this->view->back = $id ? '/methodist/inspector/edit/' . $id : '/methodist/inspector/add';
 }