【问题标题】:laravel 5 : Class 'input' not foundlaravel 5:找不到类“输入”
【发布时间】:2015-10-20 05:04:31
【问题描述】:

在我的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

【问题讨论】:

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


    【解决方案1】:

    它是Input 而不是inputThis commitconfig/app.php 中删除了Input 外观定义,因此您必须手动将其添加到aliases 数组中,如下所示,

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

    或者你可以根据需要直接导入Input门面,

    use Illuminate\Support\Facades\Input;
    

    【讨论】:

    • 如果我在 laravel 5.2 中对表单使用 laravelcollective 并在视图中使用 {{ Form }},而不是像 Shafee 那样在路由中使用会怎样。 {{ Form::text('name', Input::old('name'), array('class' => 'form-control')) }}
    • 可以使用\Input全局访问
    • 我需要如何或在哪里放置这个?将输入更改为 \Input(在表单标签内)不起作用.. Also 我没有使用Illumination\support\facades.. 但"laravelcollective/html": "5.2.*"
    • 抱歉,我没有注意您之前的评论,但是在 HTML 中,您可以使用辅助函数 old(),它只是 Input::old() 的包装器
    • @NicolasV 你可以把它放在aliases下面config/app.php里面,就像Nvan's answer points out
    【解决方案2】:

    对于 laravel <5.2

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

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

    对于 laravel >= 5.2

    Input:: 更改为Request::

    【讨论】:

      【解决方案3】:

      您可以在 folder\config\app.php 中添加外观

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

      【讨论】:

        【解决方案4】:

        在 Laravel 5.2 中 Input:: 被替换为 Request::

        使用

        Request::
        

        添加到控制器或任何其他类的顶部

        use Illuminate\Http\Request;
        

        【讨论】:

          【解决方案5】:

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

          use Illuminate\Support\Facades\Input;
          

          如果您希望它称为“输入”而不是“输入”,请添加:

          use Illuminate\Support\Facades\Input as input;
          

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

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

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

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

          问候。

          【讨论】:

            【解决方案6】:

            如果您使用 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');
               }
             }
            

            【讨论】:

              【解决方案7】:

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

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

              或者你可以根据需要直接导入Input Facade,

              use Illuminate\Support\Facades\Input;
              

              use Illuminate\Support\Facades\Input as input;
              

              【讨论】:

                【解决方案8】:

                在 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】:

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

                  【讨论】:

                    【解决方案10】:

                    这个干净的代码 sn-p 对我来说很好用:

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

                    【讨论】:

                      【解决方案11】:

                      在 config/app.php 中添加这个别名:-

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

                      【讨论】:

                        【解决方案12】:

                        类的错误应该是Input 而不是input

                        【讨论】:

                          【解决方案13】:

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

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

                          input::get() 和 Request::input()

                          在您声明 Input、Validator、Hash 等的顶部,删除 Input 并添加 Request

                          使用类似的东西:

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

                          【讨论】:

                            【解决方案14】:
                               #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

                            【讨论】:

                              猜你喜欢
                              • 1970-01-01
                              • 2015-07-17
                              • 1970-01-01
                              • 1970-01-01
                              • 2016-07-06
                              • 2016-11-26
                              • 2015-07-22
                              • 1970-01-01
                              • 1970-01-01
                              相关资源
                              最近更新 更多