我希望相同的Controller例程能够同时提供基于Web的常规页面加载以及REST调用。我在routes.php中有REST处理设置:
// Setup REST Handling
Router::mapResources( '<ControllerName>' );
Router::parseExtensions();
我们以 add()方法为例 - 我如何在此方法中区分如何进行调用?
详细说明问题:
public function add() {
$status = array();
if( $this->request->is( 'post' ) ) {
// Read POST body
$entityBody = file_get_contents( 'php://input' );
}
}
正如您在上面的代码中所看到的,我正在检测POST请求并将相应地处理请求。我需要知道的是,帖子数据是来自网络表单的REST调用。如果数据来自网络表单,则它将位于request-&gt;数据数组中;而对于REST调用,它将采用XML格式。
我将相应地处理数据并提出适当的回应。
感谢。
答案 0 :(得分:1)
使用CakeRequest对象,请参阅the documentation,与post相同。
$this->request->is('put');