Problema con primary key en Laravel

LoBezNo

Hola!

Estoy haciendo un modulo de usuarios utilizando el framework Laravel de php.

Mi base de datos tiene una tabla 'users' con una clave primaria autoincrementada llamada 'id_user'. Laravel por defecto utiliza 'id' como clave primaria para los métodos del orm, y para asignar otra clave primaria hay que sobrescribir la variable $primaryKey en el modelo a utilizar.

Pues bien, yo he sobreescrito esa variable en el modelo 'user' pero laravel me sigue tirando al editar un usuario con:

Illuminate \ Database \ QueryException
SQLSTATE[42S22]: Column not found: 1054 Unknown column 'id' in 'where clause' (SQL: select count(*) as aggregate from `users` where `email` = test@mail.com and `id` <> 1)

Sabéis por que puede ser? Os dejo por aqui el código implicado:

UserController.php
User.php
LoBezNo

Vale, tenía un error con la clase Validator, no me cogía la primary key que había asignado en $primaryKey.

Para hacerlo, hay que pasarselo como regla de validación. La forma correcta sería:

$rules['email'] .= ',' . $this->id_user . ',id_user';
1 respuesta
Gantorys

#2 Puedes también pasar un array como parámetro a $rules['loquesea'], sería bastante más legible en tu caso.

Usuarios habituales

  • Gantorys
  • LoBezNo