Para validar el campo "vat_number" en Laravel, puedes utilizar la regla de validación unique
, que ya funciona con la base de datos. Solo tienes que decirle la tabla correspondiente. La forma de utilizar esta regla varía ligeramente dependiendo de si estás insertando un nuevo registro o editando uno existente.
Validación Durante la Inserción
Para asegurarte de que el "vat_number" es único durante la inserción, puedes utilizar la regla de validación unique
de la siguiente manera:
'vat_number' => 'required|unique:customers'
Aquí, customers
es el nombre de la tabla en la base de datos donde tienes los elementos que estás verficiando como únicos.
Validación Durante la Edición
Cuando estés editando un registro, necesitas asegurarte de que el "vat_number" sea único, pero excluyendo el registro actual. Para esto, puedes pasar un parámetro adicional a la regla unique
que indica el ID del registro que se está editando. Pero como es el tercer parámetro, necesitas indicarle tb el campo, en este caso "vat_number"
'vat_number' => 'required|unique:tu_tabla,vat_number,' . $customer->id
En este caso, $customer->id
es el ID del registro que estás editando, entiendo q es un cliente. Esto asegura que la validación de único pero haciendo que se ignore el registro actual que estás pasado como id.
Reutilización de Código para validaciones de inserción y edición
Si quieres reutilizar el código, puedes utilizar un operador condicional dentro de la regla de validación. Por ejemplo, puedes verificar si estás en modo de edición (es decir, si tienes un ID de registro) y modificar la regla de validación en consecuencia:
'vat_number' => 'required|unique:tu_tabla,vat_number' . ($customer->id ? ',' . $customer->id : '')
Aquí, si $customer->id
existe (lo que significa que estás editando), se agregará a la regla de validación, excluyendo el registro actual de la comprobación. En caso de inserción (donde $customer->id
no existiría), se aplicaría la regla estándar.