laravel 5:找不到类'输入'

时间:2015-07-29 09:39:39

标签: php laravel laravel-5 laravel-5.1 laravel-5.2

在我的routes.php文件中,我有:

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

});

我有一个用户注册表单。我也在routes.php中使用表单输入值。

但是当我注册用户时出现错误。 错误:

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

14 个答案:

答案 0 :(得分:252)

它是Input而不是inputInputconfig/app.php移除了aliases外观定义,因此您必须手动将其添加到'Input' => Illuminate\Support\Facades\Input::class, 数组中,如下所示,

Input

或者您可以根据需要直接导入use Illuminate\Support\Facades\Input; 外观,

/dir1
    file.py  
/dir2
    /dir2.1
        file.py   

答案 1 :(得分:26)

您可以在folder\config\app.php

中添加外观
'Input' => Illuminate\Support\Facades\Input::class,

答案 2 :(得分:25)

对于laravel < 5.2

打开config/app.php并将Input课程添加到aliases

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

对于laravel >= 5.2

Input::更改为Request::

答案 3 :(得分:21)

在Laravel 5.2中,Input ::被Request ::

取代

使用

Request::

添加到Controller或任何其他类的顶部

use Illuminate\Http\Request;

答案 4 :(得分:5)

首先你的问题是关于输入类的拼写,应该是输入而不是输入。并且您必须使用良好的命名空间导入该类。

use Illuminate\Support\Facades\Input;

如果您想要它,请输入&#39;不输入&#39;添加:

use Illuminate\Support\Facades\Input as input;

其次,这是通过route.php存储到数据库中的一种肮脏方式, 并且您没有处理数据验证。 如果发送的参数不是您所期望的,则可能会出现SQL错误,这是由数据类型引起的。 您应该使用控制器与信息交互并通过模型在控制器方法中存储。

route.php文件处理路由。 它旨在建立控制器和询问路线之间的链接。

了解控制器,中间件,型号,服务...... http://laravel.com/docs/5.1/

如果您需要更多信息,有关问题的解决方案,您可以加入社区:https://laracasts.com/

问候。

答案 5 :(得分:4)

如果您使用Laravel版本5.2请查看: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');
   }
 }

答案 6 :(得分:4)

在别名下的config / app.php中声明: -

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

或者您可以根据需要直接导入输入外观,

use Illuminate\Support\Facades\Input;

use Illuminate\Support\Facades\Input as input;

答案 7 :(得分:2)

'Input' => Illuminate\Support\Facades\Input::class,将其添加到App.php。

答案 8 :(得分:1)

在larvel中=> 6版本:

在larvel 6,7,8版本中,输入不再存在。使用Request代替Input

基于Laravel docs,因为版本6.x输入已被删除。

输入外观

影响的可能性:中等

Input门面,主要是Request的副本 门面,已被删除。如果您使用Input::get方法,则您 现在应该调用Request::input方法。所有其他致电 输入外观可以简单地更新为使用Request外观。

use Illuminate\Support\Facades\Request;
..
..
..
 public function functionName(Request $request)
    {
        $searchInput = $request->q;
}

答案 9 :(得分:0)

在config / app.php中将其添加到别名下: -

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

答案 10 :(得分:0)

Miscall of Class应为Input而不是input

答案 11 :(得分:0)

这个干净的代码段对我来说很好用:

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

答案 12 :(得分:0)

它在laravel 6中已更改。See for more info here

在app.php和其他任何地方都不做任何事情,只需替换

input :: get()与Request :: input()

在顶部声明输入,验证器,哈希等,然后删除输入并添加请求

使用类似:

配置,数据库,文件,哈希,输入,重定向,会话,视图,验证程序,请求

答案 13 :(得分:0)

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

   #Use Controller file
   use Illuminate\Support\Facades\Input;
   ==OR==
   use Input;

阅读完整示例:https://devnote.in/laravel-class-input-not-found