laravel 5: Classe 'input' non trovato


114

Nel mio routes.phpfile ho:

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();

});

Ho un modulo per la registrazione degli utenti. Sto anche prendendo il valore degli input del modulo in routes.php.

Ma l'errore si verifica quando registro un utente. Errore:

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

Risposte:


275

Lo è Inpute non lo è input. Questo commit ha rimosso la Inputdefinizione della facciata, config/app.phpquindi devi aggiungerla manualmente aliasesall'array come di seguito,

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

Oppure puoi importare la Inputfacciata direttamente come richiesto,

use Illuminate\Support\Facades\Input;

E se utilizzo laravelcollective per i form in laravel 5.2 e utilizzo {{Form}} in una vista, non nelle rotte come fa Shafee. {{ Form::text('name', Input::old('name'), array('class' => 'form-control')) }}
nclsvh

2
Puoi utilizzare \ Input per accedervi a livello globale
pinkal vansia

Come o dove devo metterlo? La modifica dell'input in \ Input (all'interno dei tag del modulo) non funziona .. Inoltre non sto usando illuminate \ support \ facades .. ma"laravelcollective/html": "5.2.*"
nclsvh

Scusa se non ho prestato attenzione al tuo commento precedente ma in HTML puoi usare la funzione di supporto old () che non è altro che wrapper per Input :: old ()
pinkal vansia

@NicolasV puoi metterlo sotto aliasesall'interno config/app.php, come sottolinea la risposta di Nvan .
Nik Sumeiko

28

Per laravel < 5.2 :

Apri config/app.phpe aggiungi la Inputclasse a aliases:

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

Per laravel >= 5.2

Cambia Input::inRequest::


26

Puoi aggiungere una facciata nel tuo file folder\config\app.php

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

23

In Laravel 5.2 Input :: è sostituito con Request ::

uso

Request::

Aggiungi all'inizio del controller o di qualsiasi altra classe

use Illuminate\Http\Request;

5

In primo luogo il tuo problema riguarda l'ortografia della classe di input, dovrebbe essere Input invece di input. E devi importare la classe con lo spazio dei nomi buono.

use Illuminate\Support\Facades\Input;

Se vuoi che si chiami "input" e non "Input", aggiungi questo:

use Illuminate\Support\Facades\Input as input;

In secondo luogo, è un modo sporco per archiviare nel database tramite route.php e non stai elaborando la convalida dei dati. Se un parametro inviato non è quello che ti aspettavi, potrebbe essere visualizzato un errore SQL, causato dal tipo di dati. È necessario utilizzare il controller per interagire con le informazioni e archiviarle tramite il modello nel metodo del controller.

Il file route.php gestisce il routing. È progettato per creare il collegamento tra il controller e il percorso richiesto.

Per informazioni su controller, middleware, modello, servizio ... http://laravel.com/docs/5.1/

Se hai bisogno di ulteriori informazioni, soluzione al problema puoi unirti alla comunità: https://laracasts.com/

Saluti.



4

Dichiarazione in config / app.php sotto alias: -

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

Oppure puoi importare la facciata di input direttamente come richiesto,

use Illuminate\Support\Facades\Input;

o

use Illuminate\Support\Facades\Input as input;


1

Questo frammento di codice pulito funziona bene per me:

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

Aggiungi questo in config / app.php sotto alias: -

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


0

È cambiato in laravel 6. Vedi per maggiori informazioni qui

Non fare nulla in app.php e altrove, basta sostituire

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

e

in alto dove dichiari Input, Validator, Hash ecc., rimuovi Input e aggiungi Request

usa qualcosa come:

Configurazione, DB, File, Hash, Input , Reindirizzamento, Sessione, Visualizza, Validatore, Richiesta ;

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.