When I want to register a user in my laravel project, the page always says
Undefined variable: errors (View: /var/www/resources/views/auth/register.blade.php)"
According to the Laravel documentation, $errors
should always automatically be set:
So, it is important to note that an $errors variable will always be available in all of your views on every request, allowing you to conveniently assume the $errors variable is always defined and can be safely used.
I have this on on every view when I use:
@if (count($errors) > 0)
<div class="alert alert-danger">
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
or any other way when I want to use the $errors
variable.
Why is this? I never had this problem before.
Can someone help me please?
Your problem will be fixed by using this method.
If this doesn't help you, just run the following artisan command in addition to the above code:
I solved in this way while using 5.2.*
Also to be aware of: If you write tests and your view has $errors variable make sure you don't use WithoutMiddleware trait.
make your kernel look like this
I had this very same issue with Laravel 5.2.x.
Inside of the
routes.php
file try yo create your routes within thestatement.
Go to App\Http\Kernel.php file. Move all the things of
$middlewareGroups
properties to$middleware
.Check for more details- http://www.tisuchi.com/laravel-5-2-undefined-variable-error-validation/
I was seeing this error too and later realised I had used the
WithoutMiddleware
trait as a means to bypass authentication for this particular test, but it ended up removing the validation error binding too. So I had to stop using the trait to keep the views working.