No puede seleccionar más de 25 temas Los temas deben comenzar con una letra o número, pueden incluir guiones ('-') y pueden tener hasta 35 caracteres de largo.

105 líneas
3.1KB

  1. <?php
  2. namespace frontend\models;
  3. use common\models\User;
  4. use yii\base\Model;
  5. use Yii;
  6. /**
  7. * Signup form
  8. */
  9. class SignupForm extends Model
  10. {
  11. public $username;
  12. public $email;
  13. public $password;
  14. public $nom;
  15. public $prenom;
  16. public $telephone;
  17. /**
  18. * @inheritdoc
  19. */
  20. public function rules()
  21. {
  22. return [
  23. /*['username', 'filter', 'filter' => 'trim'],
  24. ['username', 'required'],
  25. ['username', 'unique', 'targetClass' => '\common\models\User', 'message' => 'Cet identifiant est déjà utilisé'],
  26. ['username', 'string', 'min' => 2, 'max' => 255],*/
  27. ['email', 'filter', 'filter' => 'trim'],
  28. ['email', 'required','message'=>'Champs obligatoire'],
  29. ['email', 'email'],
  30. ['email', 'unique', 'targetClass' => '\common\models\User', 'message' => 'Cet email est déjà utilisé'],
  31. ['nom','required','message'=>'Champs obligatoire'],
  32. ['nom', 'string', 'min' => 2, 'max' => 255],
  33. ['prenom','required','message'=>'Champs obligatoire'],
  34. ['prenom', 'string', 'min' => 2, 'max' => 255],
  35. ['telephone','required','message'=>'Champs obligatoire'],
  36. ['telephone', 'string', 'min' => 2, 'max' => 255, 'message'=>'Bada'],
  37. ['password', 'required','message'=>'Champs obligatoire'],
  38. ['password', 'string', 'min' => 6, 'tooShort' => 'Votre mot de passe doit contenir au moins 6 caractères'],
  39. ];
  40. }
  41. /**
  42. * Signs user up.
  43. *
  44. * @return User|null the saved model or null if saving fails
  45. */
  46. public function signup()
  47. {
  48. if ($this->validate()) {
  49. $user = new User();
  50. //$user->username = $this->username;
  51. $user->username = $this->email;
  52. $user->email = $this->email;
  53. $user->nom = $this->nom ;
  54. $user->prenom = $this->prenom ;
  55. $user->telephone = $this->telephone ;
  56. $user->confiance = 1 ;
  57. $user->setPassword($this->password);
  58. $user->generateAuthKey();
  59. if ($user->save()) {
  60. // envoi d'un mail de confirmation
  61. $message = "Bonjour,
  62. Votre inscription sur le site du Chat des Noisette a bien été prise en compte !
  63. Ce compte vous permet de passer vos commandes directement sur le site internet.
  64. Si vous avez des questions, n'hésitez pas à me contacter.
  65. À bientôt,
  66. Matthieu" ;
  67. Yii::$app->mailer->compose()
  68. ->setTo($user->email)
  69. ->setFrom(['matthieu@lechatdesnoisettes.com' => 'Matthieu Bourgeois'])
  70. ->setSubject("Votre inscription sur le site du Chat des Noisettes")
  71. ->setTextBody($message)
  72. ->send();
  73. return $user;
  74. }
  75. }
  76. return null;
  77. }
  78. public function attributeLabels()
  79. {
  80. return [
  81. 'id' => 'ID',
  82. 'username' => 'Identifiant',
  83. 'password' => 'Mot de passe',
  84. 'rememberMe' => 'Se souvenir de moi',
  85. ];
  86. }
  87. }