In my routes.php file I have :
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();
});
I have a form for users registration. I am also taking the form inputs value in the routes.php.
But the error comes up when I register a user . Error:
FatalErrorException in routes.php line 61:
Class 'input' not found
It is Input and not input.
This commit removed Input facade definition from config/app.php hence you have to manually add that in to aliases array as below,
'Input' => Illuminate\Support\Facades\Input::class,
Or You can import Input facade directly as required,
use Illuminate\Support\Facades\Input;
For laravel < 5.2:
Open config/app.php and add the Input class to aliases:
'aliases' => [
// ...
'Input' => Illuminate\Support\Facades\Input::class,
// ...
],
For laravel >= 5.2
Change Input:: to Request::
You can add a facade in your folder\config\app.php
'Input' => Illuminate\Support\Facades\Input::class,
In Laravel 5.2 Input:: is replaced with Request::
use
Request::
Add to the top of Controller or any other Class
use Illuminate\Http\Request;
In first your problem is about the spelling of the input class, should be Input instead of input. And you have to import the class with the good namespace.
use Illuminate\Support\Facades\Input;
If you want it called 'input' not 'Input', add this :
use Illuminate\Support\Facades\Input as input;
Second, It's a dirty way to store into the database via route.php, and you're not processing data validation. If a sent parameter isn't what you expected, maybe an SQL error will appear, its caused by the data type. You should use controller to interact with information and store via the model in the controller method.
The route.php file handles routing. It is designed to make the link between the controller and the asked route.
To learn about controller, middleware, model, service ... http://laravel.com/docs/5.1/
If you need some more information, solution about problem you can join the community : https://laracasts.com/
Regards.
if You use Laravel version 5.2 Review this: 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');
}
}
Declaration in config/app.php under aliases:-
'Input' => Illuminate\Support\Facades\Input::class,
Or You can import Input facade directly as required,
use Illuminate\Support\Facades\Input;
or
use Illuminate\Support\Facades\Input as input;
'Input' => Illuminate\Support\Facades\Input::class, add it to App.php.
Add this in config/app.php under aliases:-
'Input' => Illuminate\Support\Facades\Input::class,
Miscall of Class it should be Input not input
This clean code snippet works fine for 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();
});
来源:https://stackoverflow.com/questions/31696679/laravel-5-class-input-not-found