Soy nuevo en laravel y acabo de implementar la validación de formularios. He configurado mensajes de error personalizados en diferentes idiomas para cada error que funcionó bien antes de poner <... class="needs-validation" novalidate>. Ahora mi mensaje de error personalizado no se mostrará.
Aquí está el código que uso para mi formulario:
<form method="POST" action="{{ route('users.store')}}" class="needs-validation" novalidate> @csrf <div class="form-group mb-3 "> <label for="first_name" class="form-label">{{__('users.First Name')}}</label> <div> <input name="first_name" id="first_name" class="form-control @error('first_name') is-invalid @enderror" placeholder="{{__('users.First Name')}}" value="{{ old('first_name') }}" required> @error('first_name') <span class="invalid-feedback"> <strong> {{ $message }} </strong> </span> @enderror </div> </div> <div class="form-footer"> <button type="submit" class="btn btn-primary">{{ __('general.Add') }}</button> </div> </form> Simplemente no entra en la @error('first_name) .
También uso esto para mi javascript (del sitio web oficial):
<script> (function () { 'use strict' // Fetch all the forms we want to apply custom Bootstrap validation styles to var forms = document.querySelectorAll('.needs-validation') // Loop over them and prevent submission Array.prototype.slice.call(forms) .forEach(function (form) { form.addEventListener('submit', function (event) { if (!form.checkValidity()) { event.preventDefault() event.stopPropagation() } form.classList.add('was-validated') }, false) }) })() </script>