getCurrentUser(); $app = Factory::getApplication(); $post = $app->input->post; try { $ret = $this->callMethod($user, $post); echo new JsonResponse($ret); } catch(UserException $e) { echo new JsonResponse($e); } } /** * @param CommonClubsModelUser $user * @param JInput $post */ private function callMethod($user, $post) { switch($post->getCmd('partname')) { case 'user.name': return $this->editUserName($user, $post); } } private function editUserName($user, $post) { $name = $post->getString('name'); if(strlen($name) < 5) throw new InvalidUserDataException("Der Name muss mindestens 5 Zeichen lang sein."); $user->setName($name); $user->save(); return 'index.php?option=com_clubs&view=mypage&layout=parts&type=name'; } }