laravel 5 : Class 'input' not found
laravel 5 : Class 'input' not found
在我的routes.php
文件中,我有以下代码:\n
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(); });
\n我有一个用户注册表单。我也在routes.php
中获取表单输入的值。\n但是当我注册一个用户时,出现了错误。\n错误信息:\n
FatalErrorException in routes.php line 61: Class 'input' not found
问题原因:在Laravel5中,当使用旧版本的Laravel(小于5.2)时,可能会出现"Class 'Input' not found"的错误。这是由于在Laravel5.2之前的版本中,使用了Input类来处理请求数据,但在较新的版本中已经改为使用Request类。
解决方法:根据Laravel版本的不同,有不同的解决方法。
对于小于5.2版本的Laravel:
打开config/app.php文件,并将Input类添加到aliases中,具体内容如下:
'aliases' => [ // ... 'Input' => Illuminate\Support\Facades\Input::class, // ... ],
对于大于等于5.2版本的Laravel:
将代码中的Input::替换为Request::,即将Input::xxx()替换为Request::xxx()。这是因为在Laravel5.2及以后的版本中,已经弃用了Input类,使用Request类来处理请求数据。
通过以上的方法,可以解决"Class 'Input' not found"的错误,并使代码能够在不同版本的Laravel中正常运行。
问题:laravel 5中出现了错误“Class 'input' not found”。
原因:在提交2adbbbd91e9d6e2d569cc56f138b7273efe25651中,将config/app.php中的Input facade定义删除了,因此需要手动将其添加到aliases数组中。
解决方法1:在config/app.php中的aliases数组中添加以下代码:
'Input' => Illuminate\Support\Facades\Input::class,
解决方法2:根据需要直接导入Input facade:
use Illuminate\Support\Facades\Input;
如果在laravel 5.2中使用laravelcollective表单,并且在视图中使用{{ Form }}而不是在路由中使用,可以使用以下代码:
{{ Form::text('name', Input::old('name'), array('class' => 'form-control')) }}
可以使用\Input全局访问它。
如果在HTML中使用old()助手函数,可以将其放在config/app.php的aliases中,如Nvan的答案所指出的。
在laravel 5.2中,Input被替换为use Illuminate\Http\Request;