我需要为CakePHP 2.x
中的响应使用自定义状态代码,例如422
。
然而,CakeResponse
类只允许CakeResponse类中已经设置的状态代码。
有没有一种方法可以让我在CakePHP
中使用我的自定义状态代码?
请注意,如果答案是使用自定义CakeResponse
类,则存在与此相关的问题。
查找API但只需继续阅读:
查询&设置有效的HTTP响应代码&消息。
/**
* Queries & sets valid HTTP response codes & messages.
*
* @param int|array $code If $code is an integer, then the corresponding code/message is
* returned if it exists, null if it does not exist. If $code is an array, then the
* keys are used as codes and the values as messages to add to the default HTTP
* codes. The codes must be integers greater than 99 and less than 1000. Keep in
* mind that the HTTP specification outlines that status codes begin with a digit
* between 1 and 5, which defines the class of response the client is to expect.
* Example:
*
* httpCodes(404); // returns array(404 => 'Not Found')
*
* httpCodes(array(
* 381 => 'Unicorn Moved',
* 555 => 'Unexpected Minotaur'
* )); // sets these new values, and returns true
*
* httpCodes(array(
* 0 => 'Nothing Here',
* -1 => 'Reverse Infinity',
* 12345 => 'Universal Password',
* 'Hello' => 'World'
* )); // throws an exception due to invalid codes
*
* For more on HTTP status codes see: http://www.w3.org/Protocols/rfc2616/rfc2616-sec6.html#sec6.1
*
* @return mixed associative array of the HTTP codes as keys, and the message
* strings as values, or null of the given $code does not exist.
* @throws CakeException If an attempt is made to add an invalid status code
*/
如果你计划在API中不使用标准代码,我会在x-header中返回代码,或者像Jsend那样在响应中返回代码。