2011-12-20 19 views
9

Czytałem CakePHP's 2.0 migration guide, gdzie stwierdzono, że cakeError() został usunięty, ponieważ był używany do wyjątków. To naprawdę dziwaczna zmiana IMHO, ponieważ użyłem jej do zablokowania dostępu do nieautoryzowanych użytkowników lub do wywołania błędu, gdy liczba stronicowanych artykułów przekroczyła sumę i takie rzeczy.Wystąpić błąd 404 w CakePHP 2.0?

A teraz co? Czy powinienem po prostu rzucić die() lub przekierowanie? Naprawdę chcę poinformować użytkowników, że czegoś nie znaleziono, a Cake wykorzystał to, by zrobić tak proste rozwiązanie ... teraz nie ma.

Jakieś myśli/hacki/obejścia na ten temat? Dzięki, wesołych świąt!

Odpowiedz

12

trzeba wyrzucić odpowiedni wyjątek, w przypadku NotFoundException:

throw new NotFoundException(); 

patrz też rozdział o exceptions w książce kucharskiej.

+0

Dziękujemy! Nie widziałem wbudowanych wyjątków. Wesołych świąt! – metrobalderas

0

spróbować

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