Laravel班级混乱

时间:2015-06-06 08:11:48

标签: php class laravel laravel-5

我的一个Controller类中有以下函数:

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

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

        return $bridgedResponse;
}

它被称为罚款,但我得到了一堆“未找到类别”的错误......

e.g:

<span class="exception_message">Class &#039;OAuth2&#039; not found</span> <span class="exception_message">Class &#039;App\Http\Controllers\Request&#039; not found</span> <span class="exception_message">Class &#039;App\Http\Controllers\OAuth2\HttpFoundationBridge\Request&#039; 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导入声明,但我担心我会陷入困境......

1 个答案:

答案 0 :(得分:2)

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

OAuth2\HttpFoundationBridge\Request替换为\OAuth2\HttpFoundationBridge\Request,看看情况如何。

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

namespace App\Http\Controllers;

use OAuth2\HttpFoundationBridge\Request as OAuth2Request;

class YourController { ... }

现在,使用Request可以直接在OAuth2 YourController内找到OAuth2Request供应商中的Request::instance()

关于postToken,您需要以某种方式获取请求对象以在方法public function postToken(\Namespace\To\Request $request) { $request->instance(); } 中使用。您可以在Controller内部使用方法注入

<form>