Вызвать ошибку 404 с CakePHP 2.0? - PullRequest
9 голосов
/ 20 декабря 2011

Я читал Руководство по миграции CakePHP 2.0 , где говорится, что cakeError() было удалено, поскольку оно использовалось для исключений. ИМХО, это действительно странное изменение, потому что я использовал его, чтобы заблокировать доступ неавторизованным пользователям или вызвать ошибку, когда разбитые на страницы элементы превысили общее количество и тому подобное.

И что теперь? Должен ли я просто бросить die() или перенаправление? Я действительно хочу сообщить пользователям, что что-то не было найдено, и Кейк раньше придумывал правильный способ сделать это ... теперь это не так.

Есть какие-нибудь мысли / взломы / обходные пути по этому поводу? Спасибо, счастливых праздников!

Ответы [ 2 ]

13 голосов
/ 20 декабря 2011

Вы должны выбросить соответствующее исключение, в вашем случае NotFoundException:

throw new NotFoundException();

См. Также главу о исключениях в кулинарной книге.

0 голосов
/ 09 марта 2015

попробуйте это

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