我的一个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 '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
导入声明,但我担心我会陷入困境......
答案 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>