> Faqs > Regla de validación en Laravel para validar que un usuario existe en la base de datos

Regla de validación en Laravel para validar que un usuario existe en la base de datos

Tengo que hacer una validación en Laravel que consiste en saber si el id_usuario que se recibe por POST es el de un usuario existente en la base de datos.

¿Cómo se compondría esa validación en Laravel?

Respuestas

La regla de validación que estás buscando es "exists" (database).

Funciona con la siguiente sintaxis:

exists:table,column
  • La palabra exists es el nombre de la regla.
  • table es el nombre de la tabla donde quieres buscar
  • colum es el nombre de la columna que estás queriendo verificar que existe ante el valor que recibes.

De este modo podemos estar ante varios escenarios.

Validar el id_usuario que recibes por el Request

Suponiendo que el usuario lo recibas en un campo llamado user_id.

Validator::make($request->all(), [
    'user_id' => ['required', 'integer', 'exists:users,id'],
]);

Validar el email para verificar que pertenece a algún usuario

Suponiendo que recibes el campo 'email' en el request.

Validator::make($request->all(), [
    'email' => ['required', 'email', 'exists:users,email'],
]);

Como ves, siempre usas users como nombre de la tabla y luego una coma y el nombre de la columna que deseas comprobar si existe el valor recibido por el request.

Julian
1100 46 84 45