invokeAction() public method

Dispatches the controller action. Checks that the action exists and isn't private.
public invokeAction ( ) : mixed
return mixed The resulting response.
 protected function _invoke(Controller $controller)
 {
     $result = $controller->startupProcess();
     if ($result instanceof Response) {
         return $result;
     }
     $response = $controller->invokeAction();
     if ($response !== null && !$response instanceof Response) {
         throw new LogicException('Controller actions can only Cake\\Network\\Response instances');
     }
     if (!$response && $controller->autoRender) {
         $response = $controller->render();
     } elseif (!$response) {
         $response = $controller->response;
     }
     $result = $controller->shutdownProcess();
     if ($result instanceof Response) {
         return $result;
     }
     return $response;
 }
Example #2
1
 /**
  * Invoke a controller's action and wrapping methods.
  *
  * @param \Cake\Controller\Controller $controller The controller to invoke.
  * @return \Cake\Network\Response The response
  * @throws \LogicException If the controller action returns a non-response value.
  */
 protected function _invoke(Controller $controller)
 {
     $this->dispatchEvent('Dispatcher.invokeController', ['controller' => $controller]);
     $result = $controller->startupProcess();
     if ($result instanceof Response) {
         return $result;
     }
     $response = $controller->invokeAction();
     if ($response !== null && !$response instanceof Response) {
         throw new LogicException('Controller actions can only return Cake\\Network\\Response or null.');
     }
     if (!$response && $controller->autoRender) {
         $response = $controller->render();
     } elseif (!$response) {
         $response = $controller->response;
     }
     $result = $controller->shutdownProcess();
     if ($result instanceof Response) {
         return $result;
     }
     return $response;
 }
Example #3
-4
 /**
  * Initializes the components and models a controller will be using.
  * Triggers the controller action and invokes the rendering if Controller::$autoRender
  * is true. If a response object is returned by controller action that is returned
  * else controller's $response property is returned.
  *
  * @param Controller $controller Controller to invoke
  * @return \Cake\Network\Response The resulting response object
  * @throws \Cake\Error\Exception If data returned by controller action is not an
  *   instance of Response
  */
 protected function _invoke(Controller $controller)
 {
     $controller->constructClasses();
     $result = $controller->startupProcess();
     if ($result instanceof Response) {
         return $result;
     }
     $response = $controller->invokeAction();
     if ($response !== null && !$response instanceof Response) {
         throw new Exception('Controller action can only return an instance of Response');
     }
     if (!$response && $controller->autoRender) {
         $response = $controller->render();
     } elseif (!$response) {
         $response = $controller->response;
     }
     $result = $controller->shutdownProcess();
     if ($result instanceof Response) {
         return $result;
     }
     return $response;
 }