【问题标题】:Laravel class confusionLaravel 类混淆
【发布时间】:2015-06-06 08:11:47
【问题描述】:

我的控制器类之一中有以下函数:

public function postToken(){
        $bridgedRequest  = OAuth2\HttpFoundationBridge\Request::createFromRequest(Request::instance());
        $bridgedResponse = new OAuth2\HttpFoundationBridge\Response();

        $bridgedResponse = App::make('oauth2')->handleTokenRequest($bridgedRequest, $bridgedResponse);

        return $bridgedResponse;
}

它被称为很好,但我收到一大堆“找不到类”错误......

例如:

<span class="exception_message">Class 'OAuth2' not found</span> <span class="exception_message">Class 'App\Http\Controllers\Request' not found</span> <span class="exception_message">Class 'App\Http\Controllers\OAuth2\HttpFoundationBridge\Request' not found</span>

如何正确导入这些类?我的 composer.json 文件中有它们并且我已经执行了composer update...

这是我的 composer.json 文件:

"require": { "laravel/framework": "5.0.*", "bshaffer/oauth2-server-php": "^1.7", "bshaffer/oauth2-server-httpfoundation-bridge": "^1.1" }

我是 Laravel 的新手,所以我还在习惯事情的运作方式......

我认为这只是一个简单的use import 语句,但我恐怕我很卡...

【问题讨论】:

    标签: php class laravel laravel-5


    【解决方案1】:

    对于 PHP 命名空间,您有时必须使用 absolute 命名空间才能使类加载器正常工作。

    OAuth2\HttpFoundationBridge\Request 替换为\OAuth2\HttpFoundationBridge\Request,看看效果如何。

    您还可以使用use 语句导入类、接口等。

    namespace App\Http\Controllers;
    
    use OAuth2\HttpFoundationBridge\Request as OAuth2Request;
    
    class YourController { ... }
    

    现在,来自OAuth2 供应商的Request 可以通过使用OAuth2Request 直接在YourController 中使用。

    关于Request::instance(),您需要以某种方式获取请求对象以在方法postToken 中使用。您可以在控制器内部工作时使用方法注入

    public function postToken(\Namespace\To\Request $request)
    {
        $request->instance();
    }
    

    【讨论】:

    • 我根本无法让它工作......这条线失败了:$bridgedRequest = OAuth2\HttpFoundationBridge\Request::createFromRequest(Request::instance()); 我包含了这些命名空间:use OAuth2;use OAuth2\HttpFoundationBridge;
    • 你记得注入另一个Request 类实例吗?你也可以试试\Request::instance()
    猜你喜欢
    • 1970-01-01
    • 2013-12-28
    • 2018-09-29
    • 2015-07-20
    • 2017-01-25
    • 1970-01-01
    • 1970-01-01
    • 2013-03-23
    • 2014-02-12
    相关资源
    最近更新 更多