php - instalar - Método indefinido en solicitud:: todos()
laravel tutorial (2)
A su función de controlador se le inyecta una instancia de Illuminate / Support / Facades / Request que reenvía solo las llamadas estáticas al objeto de solicitud subyacente.
Para solucionarlo, debe importar la clase de solicitud subyacente para que se inyecte correctamente. Agregue lo siguiente en la parte superior de su archivo route.php :
use Illuminate/Http/Request;
o simplemente llame a Request :: all () en lugar de $ request-> all () .
Intento con la guía de introducción de Laravel.com.
Hay un capítulo creando la tarea . Hay $request
un parámetro de la devolución de llamada y en la función $request->all()
se usa para obtener los parámetros GET. Pero si ejecuto esa devolución de llamada me sale el error
Error grave: llamada a un método no definido Illuminate / Support / Facades / Request :: all ()
Aquí está mi código:
Route::post(''/task'', function(Request $request) {
$validator = Validator::make($request->all(), [
''name'' => ''required|max:255'',
]);
if($validator->fails())
redirect(''/'')->withInput()->withErrors($validator);
$task = new Task();
$task->name = $request[''name''];
$task->save();
return redirect(''/'');
});
Dado que este código se encuentra en el archivo route.php, que no tiene espacio de nombre, el objeto Request
que se está inyectando en su cierre es la fachada Request
, no el objeto Illuminate/Http/Request
. La fachada de Request
no tiene un método all()
.
Cambie su código a:
Route::post(''/task'', function(/Illuminate/Http/Request $request) {
// code
});
Nota: por lo general, no califica completamente el objeto de Request
en los métodos del controlador porque los controladores generalmente agregan un use Illuminate/Http/Request;
en la cima. Esta es la razón por la que la definición de la función en el archivo de rutas puede parecer un poco diferente a la definición del método de controlador.
Puedes revisar this respuesta para un poco más de información.