laravel 5 : Class 'input' 未找到

laravel 5 : Class 'input' not found

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

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

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

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

use Illuminate\Support\Facades\Input;

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

use Illuminate\Support\Facades\Input;

如果您希望将其命名为 'input' 而不是 'Input',请添加:

use Illuminate\Support\Facades\Input as input;

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

route.php 文件处理路由。 它旨在使控制器和请求的路线之间 link。

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

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

此致。

您可以在 folder\config\app.php

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

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

使用

Request::

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

use Illuminate\Http\Request;

对于laravel < 5.2:

打开 config/app.php 并添加 Input class 到 aliases:

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

对于laravel>=5.2

Input::更改为Request::

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

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

在 config/app.php 别名下添加:-

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

Class的错误调用应该是Input而不是input

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

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

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

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

或者您可以根据需要直接导入Input facade,

use Illuminate\Support\Facades\Input;

use Illuminate\Support\Facades\Input as input;

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

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

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

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

使用类似的东西:

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

   #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

在 larvel => 6 版本中:

输入不再存在于 larvel 6,7,8 版本中。使用 Request 而不是 Input.

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

输入门面

影响可能性:中等

The Input facade, which was primarily a duplicate of the Request facade, has been removed. If you are using the Input::get method, you should now call the Request::input method. All other calls to the Input facade may simply be updated to use the Request facade.

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