Ahora mismo tengo esto:
$error = new Error($id, $from, $to); return $response ->withStatus(422) ->withHeader('Content-Type', 'text/html') ->write($error->error()); La clase Error devuelve esto:
{"error":true,"code":422,"text":"Blah!"} ¿Cómo puedo configurar el código de error en ->withStatus(422) para que lo configure la cadena json en lugar de hacerlo yo manualmente?
Editar: Supongo que esto podría funcionar:
$code = json_decode($error->error(), true); $code = $code['code']; /* ...blah blah code... */ ->withStatus($code)Pero me gustaría saber si hay una manera de hacerlo con menos código.
Actualice la clase Error para que tenga un método público code() que devuelva solo el 422 . Ahora puedes hacer:
$error = new Error($id, $from, $to); return $response ->withStatus($error->code()) ->withHeader('Content-Type', 'application/json') ->write($error->error()); Por cierto, como está usando JSON, si comete un error() devuelve una matriz, puede hacer esto:
$error = new Error($id, $from, $to); return $response->withJson($error->error(), $error->code());