2011-12-20 12 views
9

Ho letto CakePHP's 2.0 migration guide dove è stato dichiarato che cakeError() è stato rimosso perché è stato utilizzato per le eccezioni. È un cambiamento davvero strano IMHO perché l'ho usato per bloccare l'accesso agli utenti non autorizzati o per attivare un errore quando gli oggetti impaginati hanno superato il totale e cose del genere.Attivare un errore 404 con CakePHP 2.0?

E ora cosa? Devo semplicemente lanciare un die() o un reindirizzamento? Voglio davvero far sapere agli utenti che qualcosa non è stato trovato e Cake è stato usato come metodo per farlo ... ora non è così.

Qualche idea/hack/soluzioni alternative a riguardo? Grazie, buone vacanze!

risposta

12

si devono gettare l'eccezione corrispondente, nel tuo caso il NotFoundException:

throw new NotFoundException(); 

Vedi anche il capitolo exceptions nel libro di cucina.

+0

Grazie! Non ho visto le eccezioni built-in. Buone vacanze! – metrobalderas

0

provare questo

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'); 
     }