使用 json 的值作为 slim 的错误代码
Using json's value as slim's error code
现在我有这个:
$error = new Error($id, $from, $to);
return $response
->withStatus(422)
->withHeader('Content-Type', 'text/html')
->write($error->error());
Error
classreturns这个:
{"error":true,"code":422,"text":"Blah!"}
如何在 ->withStatus(422)
中设置错误代码,使其由 json 字符串而不是我手动设置?
编辑:我想这可行:
$code = json_decode($error->error(), true);
$code = $code['code'];
/* ...blah blah code... */
->withStatus($code)
但是我想知道是否有一种方法可以用更少的代码来做到这一点。
更新 Error
class,使其具有 code()
public 方法,return 只是 422
。您现在可以:
$error = new Error($id, $from, $to);
return $response
->withStatus($error->code())
->withHeader('Content-Type', 'application/json')
->write($error->error());
顺便说一下,当您使用 JSON 时,如果您将 error()
return 设为一个数组,您可以这样做:
$error = new Error($id, $from, $to);
return $response->withJson($error->error(), $error->code());
现在我有这个:
$error = new Error($id, $from, $to);
return $response
->withStatus(422)
->withHeader('Content-Type', 'text/html')
->write($error->error());
Error
classreturns这个:
{"error":true,"code":422,"text":"Blah!"}
如何在 ->withStatus(422)
中设置错误代码,使其由 json 字符串而不是我手动设置?
编辑:我想这可行:
$code = json_decode($error->error(), true);
$code = $code['code'];
/* ...blah blah code... */
->withStatus($code)
但是我想知道是否有一种方法可以用更少的代码来做到这一点。
更新 Error
class,使其具有 code()
public 方法,return 只是 422
。您现在可以:
$error = new Error($id, $from, $to);
return $response
->withStatus($error->code())
->withHeader('Content-Type', 'application/json')
->write($error->error());
顺便说一下,当您使用 JSON 时,如果您将 error()
return 设为一个数组,您可以这样做:
$error = new Error($id, $from, $to);
return $response->withJson($error->error(), $error->code());