コード例 #1
0
 /**
  * @method POST
  * @json
  */
 public function saveUser()
 {
     $data = new Validator((array) $this->request->data);
     $emailField = $data->field('email')->required()->email();
     $isNew = false;
     if ($data->getData('id')) {
         $user = User::getById($data->getData('id'));
         if (!$user) {
             return new Response(400, ['id' => 'User not found']);
         }
     } else {
         $user = User::create();
         // check email
         $emailField->validator('uniqueEmail', function ($email) {
             return User::getUserByEmail($email, false) == null;
         }, 'User with this email already exists');
         $isNew = true;
     }
     $data->field('login')->required();
     $data->field('gender')->required();
     if (!$data->validate()) {
         return new Response(400, $data->errors());
     }
     $user->login = $data->getData('email');
     $user->email = $data->getData('email');
     $user->firstname = $data->getData('first');
     $user->lastname = $data->getData('last');
     $user->password = User::cryptPassword($data->getData('password'));
     $user->gender = $data->getData('gender');
     $user->is_active = $data->getData('is_active');
     $user->save();
     if ($isNew) {
         // Create the message
         $message = \Swift_Message::newInstance()->setSubject('Your subject')->setFrom(array('*****@*****.**' => 'John Doe'))->setTo([$user->email])->setBody('Here is the message itself')->addPart('<q>Here is the message itself</q>', 'text/html');
         $transport = \Swift_SmtpTransport::newInstance('smtp.gmail.com', 465, 'ssl')->setUsername('*****@*****.**')->setPassword('gjhndtqy777');
         $mailer = \Swift_Mailer::newInstance($transport);
         $result = $mailer->send($message);
         print_r($result);
     }
     return new Response(200, $user->toArray());
 }