Reputation: 5608
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
Upvotes: 124
Views: 218890
Reputation: 2619
In larvel => 6 Version:
Input no longer exists In larvel 6,7,8 Version. Use Request
instead of Input
.
Based on the Laravel docs, since version 6.x Input has been removed.
The Input Facade
Likelihood Of Impact: Medium
The
Input
facade, which was primarily a duplicate of theRequest
facade, has been removed. If you are using theInput::get
method, you should now call theRequest::input
method. All other calls to the Input facade may simply be updated to use theRequest
facade.
use Illuminate\Support\Facades\Request;
..
..
..
public function functionName(Request $request)
{
$searchInput = $request->q;
}
Upvotes: 5
Reputation: 929
#config/app.php
'aliases' => [
...
'Input' => Illuminate\Support\Facades\Input::class,
...
],
#Use Controller file
use Illuminate\Support\Facades\Input;
==OR==
use Input;
Read full example: https://devnote.in/laravel-class-input-not-found
Upvotes: 0
Reputation: 211
It's changed in laravel 6. See for more info here
Don't do anything in app.php and anywhere else, just replace
input::get() with Request::input()
and
on top where you declare Input,Validator,Hash etc., remove Input and add Request
use something like :
Config,DB,File,Hash,Input,Redirect,Session,View,Validator,Request;
Upvotes: 0
Reputation: 2072
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();
});
Upvotes: 1
Reputation: 15017
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;
Upvotes: 28
Reputation: 206
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;
Upvotes: 4
Reputation: 221
Add this in config/app.php under aliases:-
'Input' => Illuminate\Support\Facades\Input::class,
Upvotes: 0
Reputation: 485
'Input' => Illuminate\Support\Facades\Input::class
, add it to App.php.
Upvotes: 2
Reputation: 98861
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::
Upvotes: 33
Reputation: 4065
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');
}
}
Upvotes: 5
Reputation: 10300
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;
Upvotes: 284
Reputation: 1146
You can add a facade in your folder\config\app.php
'Input' => Illuminate\Support\Facades\Input::class,
Upvotes: 27
Reputation: 740
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.
Upvotes: 5