Nueva pregunta

Pregunta:

Fecha: 29-12-2015 22:54:06 (En Español)

Modificación de registros en Laravel[Resuelta]

Al realizar la edición de registros con Laravel llamo a un Request que llamé UserUpdateRequest el cual tiene como reglas lo siguiente:

public function rules()
    {
        return [
            'username' =>'min:4|max:10|unique:users|required|regex:/',
            'email' =>'min:4|max:15|required',
        ];
    }


Como pueden ver mi regla es que si el username ya existe me mande el error pero el problema viene que al intentar editar el registro y si no se cambia el nombre del username me envía el error indicando que el usuario ya existe pero entonces si quiero modificar el sólo el correo electrónico tengo también que modificar el username para poder avanzar. Si yo quieto la regla donde pido que sea unique me permite sobreescribir nombres de usuario y eso no lo quiero para no tener usuarios con el mismo username

Alguien sabe como puedo solucionar que no tenga que editar forzosamente dicho username?
Etiquetas: Framework - La Comunidad - Laravel - PHP - Pregunta Votos: 2 - Respuestas: 5 - Vistas: 9 Compartir en: Google Facebook Twitter LinkedIn Link
 

Respuestas:

  • Fecha: 02-01-2016 13:45:13 Hola Oscar, has encontrado una solución?   Votos: 1 - Link respuesta
     
  • Fecha: 03-01-2016 03:15:26 realmente es simple de modificar, la cosa es que le quites de la validacion de otra manera no hay forma (que yo sepa), ya es responsabilidad del usuario administrador el no repetir los nombres de los usuarios, por que laravel es muy rígido con las validaciones.

    unique:users  <----- quitala
    
      Votos: 2 - Link respuesta
     
  • Fecha: 03-01-2016 16:05:22 Hola, la solución no es como la comentas Mauricio a que si quito el unique:users permite que el usuario pueda tener otro nombre de usuario igual al de otro cosas que no es viable.

    Pasaba lo mismo con las cuentas de correo pero la solución fue la siguiente:

    Crear una regla de validación del formulario en el controlador correspondiente agregando la línea a validar que no tomará en cuenta al editar el registro si es que ya existe:

     'username' => 'min:4|max:10|required|unique:users,username,'.$user->id



    Código total:

      $rules = array(
                'username' => 'min:4|max:10|required|unique:users,username,'.$user->id,
                'first_name' => 'min:4|max:15|required',
                'last_name'  => 'min:4|max:15|required',
                'tel'        => 'min:8|max:12|required',
                'email' => 'required|unique:users,email,'.$user->id,
                'rol'        => 'required',
    
                );


    Pasar los datos y la validación:

     $data= $request->all();
     $v= Validator::make($data,$rules);


    Gracias por su ayuda.
      Votos: 1 - Link respuesta
     
  • Fecha: 03-01-2016 16:33:22 si es una forma que de verdad funciona, la cosa es que esos rule deben ir en el formrequest por digamos estandar   Votos: 0 - Link respuesta
     
  • Fecha: 04-01-2016 10:31:20 Muy cierto en los request deberían de ir las reglas pero aquí existe el problema de como pasar el id que viene desde el formulario? lo intenté sin éxito, no tomaba el id que viene del form para poder hacer el user id en la validación.   Votos: 0 - Link respuesta
     
Para participar activamente de la comunidad primero debes autenticarte, ingresa al sistema.Iniciar Sesión
 
frjcbbae garagebible.com