Slim PHP未返回正确的状态代码
我正在创建我的第一个api,我选择使用Slim PHP,到目前为止,我认为它是一个非常好的轻量级框架,可以完成我需要的基础工作。我唯一真正遇到的问题是我的路线响应没有返回正确的状态代码。我想在成功登录时返回200,在使用错误凭据登录失败时返回403。我得到的是一个200,不管它返回什么。逻辑正在运行,因为我可以看到返回了正确的JSON,只是状态代码没有改变 Index.phpSlim PHP未返回正确的状态代码,php,slim,Php,Slim,我正在创建我的第一个api,我选择使用Slim PHP,到目前为止,我认为它是一个非常好的轻量级框架,可以完成我需要的基础工作。我唯一真正遇到的问题是我的路线响应没有返回正确的状态代码。我想在成功登录时返回200,在使用错误凭据登录失败时返回403。我得到的是一个200,不管它返回什么。逻辑正在运行,因为我可以看到返回了正确的JSON,只是状态代码没有改变 Index.php <?php use \Psr\Http\Message\ServerRequestInterface a
<?php
use \Psr\Http\Message\ServerRequestInterface as Request;
use \Psr\Http\Message\ResponseInterface as Response;
require 'vendor/autoload.php';
$app = new \Slim\App;
$app->options('/{routes:.+}', function ($request, $response, $args) {
return $response;
});
$app->add(function ($req, $res, $next) {
$response = $next($req, $res);
return $response
->withHeader('Access-Control-Allow-Origin', 'http://mysite')
->withHeader('Access-Control-Allow-Headers', 'X-Requested-With, Content-Type, Accept, Origin, Authorization')
->withHeader('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS');
});
require_once 'api/login.php';
$app->run();
slim3使用的PSR-7响应是a,因此无法更改 F.ex 不会更改
$response
它返回更改后的响应,因此您必须返回此
return $response->withJson($data, 200);
或者,您需要使用新值重新分配变量,然后在route函数末尾返回它
$response = $response->withJson($data, 200);
// other code
return $response;
return $response->withJson($data, 200);
$response = $response->withJson($data, 200);
// other code
return $response;