Dans mon fichier routes.php
, j'ai:
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();
});
J'ai un formulaire pour l'enregistrement des utilisateurs. Je prends également la valeur des entrées de formulaire dans le routes.php
.
Mais l'erreur survient lorsque j'enregistre un utilisateur. Erreur:
FatalErrorException in routes.php line 61:
Class 'input' not found
Il s'agit de Input
et non de input
. This commit supprimé la définition de façade Input
de config/app.php
et vous devez donc l'ajouter manuellement dans le tableau aliases
comme ci-dessous,
'Input' => Illuminate\Support\Facades\Input::class,
Ou vous pouvez importer la façade Input
directement si nécessaire,
use Illuminate\Support\Facades\Input;
Pour laravel <
5.2:
Ouvrez config/app.php
et ajoutez la classe Input
à aliases
:
'aliases' => [
// ...
'Input' => Illuminate\Support\Facades\Input::class,
// ...
],
Pour laravel >=
5.2
Remplacez Input::
par Request::
Vous pouvez ajouter une façade dans votre folder\config\app.php
'Input' => Illuminate\Support\Facades\Input::class,
Dans Laravel 5.2 Entrée :: est remplacé par Demande ::
utilisation
Request::
Ajouter en haut du contrôleur ou de toute autre classe
use Illuminate\Http\Request;
En premier lieu, votre problème concerne l'orthographe de la classe d'entrée. Devrait être Entrée au lieu d'entrée. Et vous devez importer la classe avec le bon espace de noms.
use Illuminate\Support\Facades\Input;
Si vous voulez qu'elle s'appelle 'entrée' et non 'entrée', ajoutez ceci:
use Illuminate\Support\Facades\Input as input;
Deuxièmement, c’est une mauvaise façon de stocker dans la base de données via route.php, et vous ne traitez pas la validation des données. Si un paramètre envoyé ne correspond pas à vos attentes, peut-être qu'une erreur SQL apparaîtra, en raison du type de données. Vous devez utiliser le contrôleur pour interagir avec les informations et les stocker via le modèle dans la méthode du contrôleur.
Le fichier route.php gère le routage. Il est conçu pour faire le lien entre le contrôleur et l’itinéraire demandé.
Pour en savoir plus sur le contrôleur, le middleware, le modèle, le service ... http://laravel.com/docs/5.1/
Si vous avez besoin de plus d'informations, d'une solution à un problème, vous pouvez rejoindre la communauté: https://laracasts.com/
Cordialement.
Déclaration dans config/app.php sous alias: -
'Input' => Illuminate\Support\Facades\Input::class,
Ou vous pouvez importer directement la façade d’entrée si nécessaire,
use Illuminate\Support\Facades\Input;
ou
use Illuminate\Support\Facades\Input as input;
si vous utilisez Laravel version 5.2 Consultez ceci: 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
, ajoutez-le à App.php.
Ajoutez ceci dans config/app.php sous alias: -
'Input' => Illuminate\Support\Facades\Input::class,
Divers de la classe, il devrait être Input
pas input
Cet extrait de code propre fonctionne bien pour moi:
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();
});