Pro Tips Laravel: Numero 2 | Validar múlti select

Validar múlti Select


En este caso tenia un select multiple, algo como esto


<select class="mdb-select initialized" id="features" multiple="" name="features[]">
<option value="1">Size</option>
<option selected="selected" value="3">Nombre</option>
<option selected="selected" value="4">Hasta</option>

Que básicamente son las características que puede tener un servicio, como el servicio puede tener varias características a la hora de hacer la creación del servicio lo ideal es que el usuario seleccione las características que tendra el servicio y guarde.

Entonces es importante validar que realmente las características que recibirá el controlador existan en la base de datos entonces para ellos lo mejor usar el validador de laravel o mejor aun con un request hacer esta validación



Les dejo el link de otro post donde explico algo de los request y validaciones, es un manual muy interesante: http://blog.furiosojack.com/2017/07/manual-avanzado-para-laravel.html


Entonces como decía, este multiple select es un array en ultimas por eso se declara el nombre del select como features[]. Si imprimimos el request se veria asi:

array:5 [
  "_method" => "PUT"
  "_token" => "aqui va el token"
  "name" => "Prueba2"
  "cost_hour" => "0.12"
  "features" => array:2 [
    0 => "3"
    1 => "4"
  ]
]

Entonces al ser una array las reglas para validar que esas dos características que tiene id 3 y 4 en la base de datos seria algo asi:

 'features' => 'required|array',
'features.*' => 'exists:services_features,id',   


y de esa forma se valida que primer la variable features que viene en el request es requerida y tiene que ser de tipo array y por ultimo que todos los items dentro del array de features existan en la tabla services_features en la columna id.

0 Comentarios