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
Gammer
fuente

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;
vansia rosada
fuente
¿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::

CONvid19
fuente
26

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

'Input' => Illuminate\Support\Facades\Input::class,
Nvan
fuente
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;
lewis4u
fuente
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.

Desfigurar
fuente
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;
Chandrakant Ganji
fuente
2

'Input' => Illuminate\Support\Facades\Input::class, agréguelo a App.php.

prakash pokhrel
fuente
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();
});
Pradeep Sapkota
fuente
0

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

'Input' => Illuminate\Support\Facades\Input::class,
Deepak Kumar
fuente
0

Miscall de clase debe ser Inputnoinput

Domingo de Kenneth
fuente
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 ;

GOLDENSPARROW MÓVIL
fuente