在具有OAuth2的Laravel 5.1中,我想急于加载模型,但是将查询参数(来自用户模型)放置在急于加载的模型上。我认为最简单的方法是直接在模型上进行。
更具体地说,Activity
属于Task
。我只想加载与用户对象上的某些条件匹配的任务活动。使用OAuth2,我尝试通过Authorizer
查找用户,然后访问其属性。该路线包含在Lucadegasperi的中间件中
$router->group(['middleware' => 'oauth'], function(Router $router) {
$router->get('tasks/{task}', 'Resources\Tasks@show');
请求标头似乎可以通过bearer
令牌传递。
我可以通过控制器内的Authorizer
访问用户,但不能在模型定义中访问用户。为什么会这样?
我遇到错误:
Authorizer.php第104行中的NoActiveAccessTokenException:尝试用于 在没有有效访问令牌的情况下访问会话数据
use LucaDegasperi\OAuth2Server\Facades\Authorizer;
use App\User;
class Task extends BaseModel
{
protected $with = ['activities'];
public function activities()
{
$user = User::find(Authorizer::getResourceOwnerId());
return $this->hasMany(Activity::class)->where('id', '=', $user->...);
}