laravel 5:找不到类“输入”

Posted

技术标签:

【中文标题】laravel 5:找不到类“输入”【英文标题】:laravel 5 : Class 'input' not found 【发布时间】: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

【问题讨论】:

【参考方案1】:

它是Input 而不是input。 This commit 从config/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

【讨论】:

以上是关于laravel 5:找不到类“输入”的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 5:找不到 DB 种子类

我在 Laravel 5.2 中收到错误“找不到类 'Predis\Client'”

在 laravel 5 中找不到类控制器

在 laravel 5.4 中找不到类“Illuminate\Foundation\Application”

在 laravel 5.2 中找不到类“Html”

在 laravel 5 中找不到助手类