【问题标题】:Class 'Illuminate\Support\Facades\Input' not found找不到类“Illuminate\Support\Facades\Input”
【发布时间】:2020-01-24 11:41:09
【问题描述】:

升级 laravel 6 时出现错误

Symfony\Component\Debug\Exception\FatalThrowableError (E_ERROR) 类 'Illuminate\Support\Facades\Input' 未找到

源代码:

错误:

您能帮忙修复我的代码吗?

【问题讨论】:

标签: laravel class


【解决方案1】:

如果您使用的是 Laravel 5.2

的低版本

config/app.php 中,替换:

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

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

use Illuminate\Support\Facades\Input;

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

使用

Request::

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

use Illuminate\Http\Request;

你的情况

$image_tmp = $request->image;
$fileName = time() . '.'.$image_tmp->clientExtension();

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

你也可以直接使用$request

$request->all();

【讨论】:

【解决方案2】:

config/app.php 中,替换:

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

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

【讨论】:

  • 如果您将旧的 Laraval 5 应用程序迁移到 Laravel 6+,这会更好。
【解决方案3】:

我已经解决了它对我有用
第 1 步:访问链接:yourproject\vendor\laravel\framework\src\Illuminate\Support\Facades
第二步:创建一个文件名:Input.php
第 3 步:将下面的代码粘贴到您刚刚创建的文件中并保存

<?php

namespace Illuminate\Support\Facades;

/**
 * @method static \Illuminate\Http\Request instance()
 * @method static string method()
 * @method static string root()
 * @method static string url()
 * @method static string fullUrl()
 * @method static string fullUrlWithQuery(array $query)
 * @method static string path()
 * @method static string decodedPath()
 * @method static string|null segment(int $index, string|null $default = null)
 * @method static array segments()
 * @method static bool is(...$patterns)
 * @method static bool routeIs(...$patterns)
 * @method static bool fullUrlIs(...$patterns)
 * @method static bool ajax()
 * @method static bool pjax()
 * @method static bool secure()
 * @method static string ip()
 * @method static array ips()
 * @method static string userAgent()
 * @method static \Illuminate\Http\Request merge(array $input)
 * @method static \Illuminate\Http\Request replace(array $input)
 * @method static \Symfony\Component\HttpFoundation\ParameterBag|mixed json(string $key = null, $default = null)
 * @method static \Illuminate\Session\Store session()
 * @method static \Illuminate\Session\Store|null getSession()
 * @method static void setLaravelSession(\Illuminate\Contracts\Session\Session $session)
 * @method static mixed user(string|null $guard = null)
 * @method static \Illuminate\Routing\Route|object|string route(string|null $param = null)
 * @method static string fingerprint()
 * @method static \Illuminate\Http\Request setJson(\Symfony\Component\HttpFoundation\ParameterBag $json)
 * @method static \Closure getUserResolver()
 * @method static \Illuminate\Http\Request setUserResolver(\Closure $callback)
 * @method static \Closure getRouteResolver()
 * @method static \Illuminate\Http\Request setRouteResolver(\Closure $callback)
 * @method static array toArray()
 * @method static bool offsetExists(string $offset)
 * @method static mixed offsetGet(string $offset)
 * @method static void offsetSet(string $offset, $value)
 * @method static void offsetUnset(string $offset)
 *
 * @see \Illuminate\Http\Request
 */
class Input extends Facade
{
    /**
     * Get an item from the input data.
     *
     * This method is used for all request verbs (GET, POST, PUT, and DELETE)
     *
     * @param  string  $key
     * @param  mixed   $default
     * @return mixed
     */
    public static function get($key = null, $default = null)
    {
        return static::$app['request']->input($key, $default);
    }

    /**
     * Get the registered name of the component.
     *
     * @return string
     */
    protected static function getFacadeAccessor()
    {
        return 'request';
    }
}


第 4 步:重新运行您的项目
完成。祝你好运!

【讨论】:

  • 很好的解决方案!
【解决方案4】:

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

使用

Request::

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

use Illuminate\Http\Request;

来源:https://stackoverflow.com/a/37203477/12089073

【讨论】:

    【解决方案5】:

    输入不再存在。使用 Request 外观或别名,而不是 Input。 请阅读 Laravel 6 中的此升级指南以获取更多详细信息。 https://laravel.com/docs/6.x/upgrade#the-input-facade

    【讨论】:

      【解决方案6】:

      您可以使用$request-&gt;all() 代替Input::all()。它在我的情况下有效。

      【讨论】:

        【解决方案7】:

        无论是作为命名空间还是在 config/app.php 中使用 Input 在 Laravel 8 中都已过时。 你必须使用 Illuminate\Http\Request;而是在您的命名空间中。你从请求中得到输入。下面是 API。

        Illuminate\Http\Request;
        
        public function index(Request $request){
           $id = $request->Input('id');
        }
        

        【讨论】:

          【解决方案8】:

          $image_tmp = $request->图像; $文件名 = 时间()。 '.'.$image_tmp->clientExtension()

          【讨论】:

            【解决方案9】:

            use Input; 添加到您的班级顶部。

            【讨论】:

              【解决方案10】:

              解决这个问题的最好方法是复制 laravel 提供的 Input.php 文件here 并将文件粘贴到您的项目目录中。

              不要忘记将它添加到您的控制器中使用 Illuminate\Http\Request;

              laravelproject\vendor\laravel\framework\src\Illuminate\Support\Facades

              【讨论】:

                【解决方案11】:

                您可以使用全局 request() 函数,例如 request('key') 来访问单个键或 request()-&gt;all() 访问所有请求数据。

                【讨论】:

                  【解决方案12】:

                  你可能更新了你的 laravel 包。并且 Input:: 在 laravel 5.2 及更高版本中被替换。您可以将config/app.php 中的输入替换为

                  'Input' =&gt; Illuminate\Support\Facades\Input::class,

                  在你的控制器中,你可以像这样引用它

                  use Illuminate\Support\Facades\Request as Input;
                  

                  【讨论】:

                    【解决方案13】:
                    use Illuminate\Support\Facades\Request;
                    
                    Request::input();
                    

                    【讨论】:

                      猜你喜欢
                      • 2015-01-14
                      • 2019-12-30
                      • 2017-03-08
                      • 2020-12-17
                      • 1970-01-01
                      • 2020-01-27
                      • 2021-01-08
                      • 2021-10-10
                      相关资源
                      最近更新 更多