莫名其妙的 Non-static method

今天写接口的时候

无论访问什么接口都出现了这个错误

命名前一天啥都可以访问的

ErrorException (E_DEPRECATED)
Non-static method Illuminate\Routing\Route::middleware() should not be called statically

莫名奇妙的,找了许久的文档和文章还有系统日志,都找不出任何原因。

对比了一下git之前源码版本,发现了api.php出现了以下的use;

use Illuminate\Http\Request;
use Illuminate\Routing\Route;

跟之前的版本对比多出了

use Illuminate\Routing\Route;

没错!就是在写路由的时候不小心引入了这个Route,删除掉即可,暂时先这样,后面找时间了解下为啥子。

《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 1

查看 config/app.php文件的aliases字段可以发现Route 映射的是Illuminate\Support\Facades\Route::class门面。 门面类中含有以下代码

    protected static function getFacadeAccessor()
    {
        return 'router';
    }

同时在路由服务提供者Illuminate\Routing\RoutingServiceProvider::class中,把router服务定义为Illuminate\Routing\Router::class

    protected function registerRouter()
    {
        $this->app->singleton('router', function ($app) {
            //   Router 与 RoutingServiceProvider 在同一目录 省略 use
            return new Router($app['events'], $app);
        });
    }

你配置路由的时候使用的是Illuminate\Routing\Route::class,前者用来定义路由,后者属于被定义的路由

4年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!