My FormRegister.php
<?php
namespace app\models;
use Yii;
use yii\base\Model;
use app\models\Users;
class FormRegister extends model{
public $role;
public $nombre;
public $rut;
public $fono;
public $direccion;
public $email;
public $id_curso;
public $id_alumno;
public $apoderado_sup;
public $fono_apoderado_sup;
public $email_apoderado_sup;
public $username;
public $password;
public $password_repeat;
public $id_apoderado;
public $id_profesor;
public function rules()
{
return [
[['role', 'username', 'email', 'password', 'password_repeat'], 'required', 'message' => 'Campo requerido'],
[['nombre', 'rut', 'fono', 'direccion'], 'required', 'message' => 'Campo requerido'],
['email', 'match', 'pattern' => "/^.{5,80}$/", 'message' => 'Mínimo 5 y máximo 80 caracteres'],
['email', 'email', 'message' => 'Formato no válido'],
['email', 'email_existe'],
[['id_curso', 'id_alumno', 'nombre'], 'required', 'message' => 'Campo requerido'],
// [['apoderado_sup', 'fono_apoderado_sup', 'email_apoderado_sup'], 'required', 'message' => 'Campo requerido'],
['username', 'match', 'pattern' => "/^.{3,50}$/", 'message' => 'Mínimo 3 y máximo 50 caracteres'],
['username', 'match', 'pattern' => "/^[0-9a-z]+$/i", 'message' => 'Sólo se aceptan letras y números'],
['username', 'username_existe'],
['password', 'match', 'pattern' => "/^.{6,16}$/", 'message' => 'Mínimo 6 y máximo 16 caracteres'],
['password_repeat', 'compare', 'compareAttribute' => 'password', 'message' => 'Los passwords no coinciden'],
];
}
public function email_existe($attribute, $params)
{
//Buscar el email en la tabla
$table = Users::find()->where("email=:email", [":email" => $this->email]);
//Si el email existe mostrar el error
if ($table->count() == 1)
{
$this->addError($attribute, "El email seleccionado existe");
}
}
public function username_existe($attribute, $params)
{
//Buscar el username en la tabla
$table = Users::find()->where("username=:username", [":username" => $this->username]);
//Si el username existe mostrar el error
if ($table->count() == 1)
{
$this->addError($attribute, "El usuario seleccionado existe");
}
}
public function attributeLabels()
{
return[
'role' => 'Tipo de Usuario',
'nombre' => 'Nombre',
'rut' => 'Rut',
'fono' => 'Fono',
'direccion' => 'Dirección',
'email' => 'Email',
'id_curso' => 'Curso',
'id_alumno' => 'Alumno',
'apoderado_sup' => 'Apoderado Suplente',
'fono_apoderado_sup' => 'Fono Apoderado Suplente',
'email_apoderado_sup' => 'Email Apoderado Suplente',
'username' => 'Nombre de Usuario',
'password' => 'Contraseña',
'password_repeat' => 'Repetir contraseña',
];
}
}