2015-07-29 11 views
67

In meiner routes.php Datei ich habe:Laravel 5: Klasse 'Eingang' nicht gefunden

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

}); 

ich ein Formular für die Benutzer-Registrierung haben. Ich nehme auch den Formulareingangswert in der routes.php.

Aber der Fehler kommt auf, wenn ich einen Benutzer registriere. Fehler:

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

Antwort

180

Es ist Input und nicht input. This commit entfernt Input Fassade Definition von config/app.php daher müssen Sie manuell, dass wie unten, um aliases Array hinzufügen

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

Oder Sie können Input Fassade direkt importieren nach Bedarf

use Illuminate\Support\Facades\Input; 
+0

Was ist, wenn ich Laravelcollective für die Formulare in Laravel 5.2 verwende und ich {{Form}} in einer Ansicht verwende, nicht in Routen wie Shafee. '{{Form :: text ('name', Eingabe :: alt ('name'), array ('class' => 'form-control'))}}' – nclsvh

+2

Sie können \ Input verwenden, um global darauf zuzugreifen –

+0

Wie oder wo muss ich das setzen? Das Ändern der Eingabe in \ Input (innerhalb der Form-Tags) funktioniert nicht. *** *** *** Ich benutze illuminate \ support \ facades .. aber '" laravelcollective/html ":" 5.2. * "' – nclsvh

5

In erster Ihr Problem handelt von der Schreibweise der Eingabeklasse, sollte Input statt Input sein. Und Sie müssen die Klasse mit dem guten Namensraum importieren.

use Illuminate\Support\Facades\Input; 

Wenn Sie wollen, dass es ‚Eingang‘ nicht ‚Input‘ genannt, fügen Sie diese:

use Illuminate\Support\Facades\Input as input; 

Zweitens, es ist eine schmutzige Art und Weise in die Datenbank über route.php zu speichern, und Sie‘ Die Datenvalidierung wird nicht verarbeitet. Wenn ein gesendeter Parameter nicht Ihren Erwartungen entspricht, wird möglicherweise ein SQL-Fehler angezeigt, der durch den Datentyp verursacht wird. Sie sollten den Controller verwenden, um mit Informationen zu interagieren und über das Modell in der Controller-Methode zu speichern.

Die route.php-Datei behandelt Routing. Es wurde entwickelt, um die Verbindung zwischen dem Controller und der angeforderten Route herzustellen.

über Controller, Middleware, Modell, Service ... http://laravel.com/docs/5.1/

lernen, wenn Sie weitere Informationen, Lösung über Problem müssen Sie die Community beitreten: https://laracasts.com/

Grüße.

22

Sie können eine Fassade in Ihrem folder\config\app.php

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

In Laravel 5 hinzuzufügen.2 Eingang :: mit Antrag ersetzt ::

Also, wo immer Sie zur Eingabe von etwas brauchen statt mit

Input:: 

Verwendung

Request:: 

Und wenn Sie Fehler etwas über ‚bekommen sollte nicht statisch verwenden 'fügen Sie das einfach oben in der Datei ein

Wenn Sie diese Zeile bereits haben:

use Illuminate\Http\Request; 

löschen, weil Sie nicht zwei Klassen mit dem gleichen Namen

19

Für Laravel <5.2 in einer Datei haben:

öffnen config/app.php und fügen Sie die Input Klasse aliases:

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

Für Laravel >=5,2

ändern Input:: zu Request::

4

wenn Sie Laravel Version 5.2 Bewertung verwenden diese: 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'); 
    } 
} 
2

'Input' => Illuminate\Support\Facades\Input::class, fügen Sie es App.php.

0

Fügen Sie diese in config/app.php unter Aliase: -

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

miscall der Klasse sollte es für mich

0

Dieses saubere Code-Schnipsel funktioniert 'Input' nicht 'Eingang' sein:

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

});