【发布时间】:2018-03-05 03:20:44
【问题描述】:
我的 routes/web.php 中有这样的路由
Route::resource('/api/surveys', 'SurveyController');
正如文档所述,它为 API 创建了所有需要的路由。这是一个函数,当我使用 /api/surveys 路由时会执行:
public function index()
{
$request = request();
if(!$request->hasHeader('token')) {
return "No auth token found.";
}
$tokenCheck = $this->userService->isTokenValid($request->header('token'));
if($tokenCheck !== true) {
return $tokenCheck;
}
return $this->surveyService->all();
}
它做什么,它检查是否设置了令牌头参数,如果没有,它返回一个错误,如果是,它检查令牌是否有效等等。如果一切正常,它应该从数据库返回调查。
public function surveys() {
$request = \Request::create('/api/surveys', 'GET');
$request->headers->set('Accept', 'application/json');
$request->headers->set('token', \Cookie::get('token'));
$response = \Route::dispatch($request);
print_r('<pre>');
print_r($response);
print_r('</pre>');
}
我有一个网站,应该使用我刚刚创建的 API 来获取所有调查记录。我创建了一个新的请求对象,使用从 cookie 获得的令牌设置标头“令牌”,然后尝试分派并获得响应。但问题是每次我得到“找不到身份验证令牌”。错误。这意味着 $request->hasHeader('token') 返回 false,即使我在请求中设置它也很难。如果我在 Restful 控制器中 print_r $request->all(),我会得到一个空数组。
我尝试 Postman 使用 token 参数访问此 API,它在 postman 中运行良好,但在这里,请求似乎在传输到 API 控制器时消失了。
我在这里做错了什么?
【问题讨论】:
-
获取请求对象作为索引函数中的参数。
-
我试过了,还是不行。