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'; }