2011-12-20 19 views
9

He estado leyendo CakePHP's 2.0 migration guide donde se indica que cakeError() se ha eliminado porque se usó para excepciones. Es un cambio realmente extraño en mi humilde opinión porque lo utilicé para bloquear el acceso a usuarios no autorizados o para desencadenar un error cuando los artículos paginados excedieron el total, y cosas por el estilo.¿Desencadenar un error 404 con CakePHP 2.0?

¿Y ahora qué? ¿Debo simplemente lanzar un die() o una redirección? Realmente quiero dejarles saber a los usuarios que algo no se encontró y que Cake solía mostrar una manera directa de hacerlo ... ahora no es así.

¿Alguna idea/hacks/soluciones al respecto? Gracias, felices fiestas!

Respuesta

12

hay que tirar la excepción correspondiente, en su caso, el NotFoundException:

throw new NotFoundException(); 

Véase también el capítulo sobre exceptions en el libro de cocina.

+0

Gracias! No vi las excepciones incorporadas. ¡Felices vacaciones! – metrobalderas

0

probar esto

if ($this->Session->read('Auth.User.role') == 'P' || $this->Session->read('Auth.User.role') == 'U') { 
      //die('you are not allowed to access this page'); 
      //throw new ForbiddenException; 
      throw new NotFoundException('404 Error - Page not found'); 
     }