/** * Returns either a View or Response object. * * @route GET /?method=example.mixed * @route GET /example/mixed * * @param Request $request * @return View|Response */ public function mixedAction($request) { // accept HTML, JSON and XML $request->acceptContentTypes(array('html', 'json', 'xml')); if ('html' === $request->getContentType()) { $response = new View(); $response->setLayout('main'); } else { $response = new Response(); } $response->method = $request->getMethod(); $response->controller = $request->getController(); $response->action = $request->getAction(); return $response; }
/** * @route GET /?method=users.destroy&id=1&format=json * @route GET /users/1/destroy.json * * @param Request $request * @return Response * @throws Exception */ public function destroyAction($request) { $request->acceptContentTypes(array('json')); $id = $request->getParam('id'); $model = $this->getModel('User'); $user = $model->find($id); if (!$user) { throw new Exception('User not found', Response::NOT_FOUND); } $model->delete($user->id); // return 200 OK return new Response(); }