errors - Variable indefinida: errores en Laravel
undefined variable errors laravel (10)
Debe asegurarse de que en la
app/Http/Kernel.php
en la propiedad
middlewareGroups
para
web
tenga:
/Illuminate/View/Middleware/ShareErrorsFromSession::class,
en esta matriz Compare esto con https://github.com/laravel/laravel/blob/master/app/Http/Kernel.php
EDITAR
Parece que necesita agregar
''middleware'' => ''web''
para la ruta que está utilizando o poner
/Illuminate/View/Middleware/ShareErrorsFromSession::class,
en la matriz de propiedades
$middleware
o
Dentro del archivo routes.php intente crear sus rutas dentro del siguiente bloque
Route::group([''middleware'' => [''web'']], function () {
//routes here
});
ACTUALIZACIÓN PARA VERSIONES MÁS NUEVAS DE APLICACIÓN LARAVEL
Tenga en cuenta que también puede tener problemas en caso de que use
web
middleware
web
dos veces.
Hubo un cambio en la aplicación Laravel
5.2.27
(no lo confunda con el marco Laravel que usa en este momento; puede usar el marco Laravel por ejemplo 5.2.31 pero tiene la aplicación Laravel en la versión 5.2.24) en la que
web
middleware
web
es aplicado automáticamente para todas las rutas.
Entonces, en caso de problemas, debe abrir su
app/Providers/RouteServiceProvider.php
y verificar su contenido.
Puedes compararlo también aquí:
En caso de que tenga una versión más nueva (que aplique
web
middleware
web
automáticamente), ya no debería usar
web
middleware
web
en
routes.php
o debería modificar su método
RouteServiceProvider
para no aplicar
web
middleware del grupo
web
.
De lo contrario, si
web
grupo de middleware
web
se aplica automáticamente en este proveedor y lo usa también en
routes.php
, puede obtener resultados muy inesperados.
Cuando quiero registrar un usuario en mi proyecto laravel, la página siempre dice
Variable indefinida: errores (Ver: /var/www/resources/views/auth/register.blade.php) "
De acuerdo con la documentación de Laravel,
$errors
siempre deben establecerse automáticamente:
Por lo tanto, es importante tener en cuenta que una variable $ errors siempre estará disponible en todas sus vistas en cada solicitud, lo que le permite asumir convenientemente que la variable $ errors siempre está definida y se puede usar de forma segura.
Tengo esto en cada vista cuando uso:
@if (count($errors) > 0)
<div class="alert alert-danger">
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
o de cualquier otra forma cuando quiera usar la variable
$errors
.
¿Por qué es esto? Nunca he tenido este problema antes.
¿Puede alguien ayudarme por favor?
En realidad no fue un error, estaba advirtiendo que puede eliminar usando la función php error_reporting ()
Eliminé la advertencia en mi laravel 5.6 usando
error_reporting (E_ALL ^ E_NOTICE);
Más detalles: http://php.net/manual/en/function.error-reporting.php
Espero que te ayude, gracias
Su problema se solucionará utilizando este método.
Route::group([''middleware'' => [''web'']], function () {
//routes should go here
});
Si esto no le ayuda, simplemente ejecute el siguiente comando artesanal además del código anterior:
php artisan key:generate
Resolví de esta manera mientras usaba 5.2. *
También debe tener en cuenta: si escribe pruebas y su vista tiene una variable de $ errores, asegúrese de no usar el rasgo SinMiddleware .
También estaba viendo este error y luego me di cuenta de que había usado el rasgo
WithoutMiddleware
como un medio para omitir la autenticación para esta prueba en particular, pero también terminó eliminando el enlace de error de validación.
Así que tuve que dejar de usar el rasgo para mantener las vistas funcionando.
Tuve este mismo problema con Laravel 5.2.x.
Dentro del archivo
routes.php
, intente crear sus rutas dentro del
Route::group([''middleware'' => [''web'']], function () {
//routes here
}
declaración.
Tuve un problema similar y lo resolví agregando rutas a la matriz de propiedades de middleware también,
PERO
funcionó solo después de llamar a
php artisan route:cache
(borrar caché de ruta) posteriormente.
Espero que algunos de ustedes encuentren esto útil.
Vaya al archivo
App / Http / Kernel.php
.
Mueva todas las cosas de las propiedades de
$middlewareGroups
a
$middleware
.
Consulte para obtener más detalles: http://www.tisuchi.com/laravel-5-2-undefined-variable-error-validation/
count no es realmente confiable ya que supone que la variable ya existe.
cambie la verificación de condición a:
@if($errors->has())
o simplemente
@if($errors)
Además, si está redirigiendo, asegúrese de usar esto en su controlador
return redirect()->back()->with(''errors'', $validator->messages());
EDITAR: visto ahora que está utilizando L5.2 Esto puede responder a su pregunta: debe colocar sus Rutas en el grupo Ruta.
protected $middleware = [ /Illuminate/Foundation/Http/Middleware/CheckForMaintenanceMode::class,
/Social/Http/Middleware/EncryptCookies::class,
/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse::class,
/Illuminate/Session/Middleware/StartSession::class,
/Illuminate/View/Middleware/ShareErrorsFromSession::class,
/Social/Http/Middleware/VerifyCsrfToken::class,
];
/**
* The application''s route middleware groups.
*
* @var array
*/
protected $middlewareGroups = [
''web'' => [
],
''api'' => [
''throttle:60,1'',
],
];
/**
* The application''s route middleware.
*
* These middleware may be assigned to groups or used individually.
hacer que su núcleo se vea así