laravel 5: Clase 'entrada' no encontrada


114

En mi routes.phparchivo tengo:

Route::get('/', function () {

    return view('login');
});

Route::get('/index', function(){
    return view('index');
});

Route::get('/register', function(){
    return view('register');
});
Route::post('/register',function(){

    $user = new \App\User;
    $user->username = input::get('username');
    $user->email  = input::get('email');
    $user->password = Hash::make(input::get('username'));
    $user->designation = input::get('designation');
    $user->save();

});

Tengo un formulario para registro de usuarios. También estoy tomando el valor de entradas de forma en el routes.php.

Pero el error aparece cuando registro un usuario. Error:

FatalErrorException in routes.php line 61:
Class 'input' not found

Respuestas:


275

Lo es Inputy no input. Esta confirmación eliminó la Inputdefinición de fachada, por config/app.phplo que debe agregarla manualmente a la aliasesmatriz como se muestra a continuación,

'Input' => Illuminate\Support\Facades\Input::class,

O puede importar la Inputfachada directamente según sea necesario,

use Illuminate\Support\Facades\Input;

¿Qué pasa si uso laravelcollective para los formularios en laravel 5.2 y uso {{Form}} en una vista, no en rutas como lo hace Shafee? {{ Form::text('name', Input::old('name'), array('class' => 'form-control')) }}
nclsvh

2
Puede usar \ Input para acceder a él globalmente
pinkal vansia

¿Cómo o dónde necesito poner esto? Cambiar Entrada a \ Entrada (dentro de las etiquetas del formulario) no funciona. Además, no estoy usando illuminate \ support \ "laravelcollective/html": "5.2.*"
facades

Lo siento, no presté atención a su comentario anterior, pero en HTML puede usar la función auxiliar old () que no es más que un contenedor para Input :: old ()
pinkal vansia

@NicolasV se puede poner bajo aliasesel interior config/app.php, ya que la respuesta de Nvan señala .
Nik Sumeiko

28

Para laravel < 5.2 :

Abra config/app.phpy agregue la Inputclase a aliases:

'aliases' => [
// ...
  'Input' => Illuminate\Support\Facades\Input::class,
// ...
],

Para laravel >= 5.2

Cambiar Input::aRequest::


26

Puede agregar una fachada en su folder\config\app.php

'Input' => Illuminate\Support\Facades\Input::class,

23

En Laravel 5.2 Input :: se reemplaza con Request ::

utilizar

Request::

Agregar a la parte superior de Controller o cualquier otra clase

use Illuminate\Http\Request;

5

En primer lugar, su problema es sobre la ortografía de la clase de entrada, debería ser Entrada en lugar de entrada. Y tienes que importar la clase con el buen espacio de nombres.

use Illuminate\Support\Facades\Input;

Si desea que se llame 'entrada' y no 'Entrada', agregue esto:

use Illuminate\Support\Facades\Input as input;

En segundo lugar, es una forma sucia de almacenar en la base de datos a través de route.php, y no está procesando la validación de datos. Si un parámetro enviado no es lo que esperaba, tal vez aparezca un error de SQL causado por el tipo de datos. Debe usar el controlador para interactuar con la información y almacenarla a través del modelo en el método del controlador.

El archivo route.php maneja el enrutamiento. Está diseñado para establecer el vínculo entre el controlador y la ruta solicitada.

Para aprender sobre controlador, middleware, modelo, servicio ... http://laravel.com/docs/5.1/

Si necesita más información, solución al problema, puede unirse a la comunidad: https://laracasts.com/

Saludos.



4

Declaración en config / app.php bajo alias: -

'Input' => Illuminate\Support\Facades\Input::class,

O puede importar la fachada de entrada directamente según sea necesario,

use Illuminate\Support\Facades\Input;

o

use Illuminate\Support\Facades\Input as input;


1

Este fragmento de código limpio funciona bien para mí:

use Illuminate\Http\Request;
Route::post('/register',function(Request $request){

   $user = new \App\User;
   $user->username = $request->input('username');
   $user->email  = $request->input('email');
   $user->password = Hash::make($request->input('username'));
   $user->designation = $request->input('designation');
   $user->save();
});

0

Agregue esto en config / app.php bajo alias: -

'Input' => Illuminate\Support\Facades\Input::class,


0

Ha cambiado en laravel 6. Consulta para obtener más información aquí.

No hagas nada en app.php ni en ningún otro lugar, solo reemplaza

input :: get () con Request :: input ()

y

en la parte superior donde declara Input, Validator, Hash, etc., elimine Input y agregue Request

usa algo como:

Configuración, DB, Archivo, Hash, Entrada , Redirección, Sesión, Vista, Validador, Solicitud ;

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.