laravel 5: Classe 'input' non trovata

Nel mio file routes.php 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 module per la logging degli utenti. Sto anche prendendo il valore di input della forma nel routes.php .

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

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

È Input e non input . Questo commit ha rimosso la definizione della facciata in Input da config/app.php quindi è necessario aggiungerla manualmente alla matrix di aliases come di seguito,

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

Oppure puoi importre la facciata di Input direttamente come richiesto,

 use Illuminate\Support\Facades\Input; 

Puoi aggiungere una facciata nella folder\config\app.php

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

Per laravel < 5,2 :

Apri config/app.php e aggiungi la class di Input agli aliases :

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

Per laravel >= 5.2

Cambia Input:: to Request::

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

Quindi, where mai hai bisogno di inserire qualcosa invece di usare

 Input:: 

uso

 Request:: 

E se si verifica un errore su 'non usare in modo statico', basta aggiungerlo nella parte superiore del file

 use Request; 

Se hai già questa linea:

 use Illuminate\Http\Request; 

eliminalo perché non puoi avere due classi con lo stesso nome in un unico file

In primo luogo il tuo problema riguarda l'ortografia della class di input, dovrebbe essere Input anziché input. E devi importre la class con il buon namespace.

 use Illuminate\Support\Facades\Input; 

Se vuoi chiamarlo 'input' e non 'Input', aggiungi questo:

 use Illuminate\Support\Facades\Input as input; 

In secondo luogo, è un modo sporco di archiviare nel database tramite route.php e non si sta elaborando la validation dei dati. Se un parametro inviato non è quello che ci si aspettava, potrebbe apparire un errore SQL, causato dal tipo di dati. È necessario utilizzare il controller per interagire con le informazioni e archiviare tramite il model nel metodo del controller.

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

Per informazioni su controller, middleware, templates, servizi … http://laravel.com/docs/5.1/

Se hai bisogno di ulteriori informazioni, soluzione al problema, puoi iscriverti alla community: https://laracasts.com/

Saluti.

se usi Laravel versione 5.2 Leggi questo: https://laravel.com/docs/5.2/requests#accessing-the-request

 use Illuminate\Http\Request;//Access able for All requests ... class myController extends Controller{ public function myfunction(Request $request){ $name = $request->input('username'); } } 

'Input' => Illuminate\Support\Facades\Input::class , aggiungilo ad App.php.