Mostrando entradas con la etiqueta Validate. Mostrar todas las entradas
Mostrando entradas con la etiqueta Validate. Mostrar todas las entradas

Crear un request para Validaciones complejas

En los métodos del controller las validaciones siempre se hacen:
$request->validate([
     'name' => 'required',
     'slug' => "required|unique:categories,slug,$category->id"
]);

Pero si hay que hacer validaciones más complejas lo ideal es crear un request:
php artisan make:request StorePostRequest

En app\Http\Requests\StorePostRequest.php:
authorize() a true
...
function rules() { $rules = [
'name' => 'required',
'slug' => 'required|unique:posts',
'status' => 'required|in:1,2'
];

if ($this->status == 2) {
$rules = array_merge($rules, [
'category_id' => 'required',
'tags' => 'required',
'extract' => 'required',
'body' => 'required'
]);
}

return $rules;
}

Y luego en el Controller solo hay que:
use App\Http\Requests\StorePostRequest;
...
// solo poniendo esto ya hace automáticamente todas las vacidaciones a lo q se mande por $request
public function store(StorePostRequest $request) {
...
}

Validate

Validar el email al hacer el update:
public function update(User $user) {
   $data->request()->validate([
'name' => 'required',
'email' => ['required', 'email', Rule::unique('users')->ignore($user->id)],
'password' => ''
   ]);

}