В Kohana, вы можете вызвать ошибку 404?
-
05-07-2019 - |
Вопрос
У меня есть контроллер с именем Articles
, который создает модель статей, которая получает соответствующие данные из базы данных.
Я хочу, чтобы, если метод, который я вызываю, возвращал false
, чтобы вызвать ошибку 404. Это то, что я до сих пор.
$articleName = $this->uri->segment('articles');
$article = new Articles_Model();
$data = $article->getArticleUsingSlug($articleName);
if (!$data) {
Kohana::show_404; // This doesn't work.
}
Я только что добавил свой собственный пользовательский хук, который перенаправляет пользователя на фактический 404 (/ article / page-not-found /), запущенный Kohana, но есть ли способ, которым я могу вызвать его внутренний метод 404, чтобы заставить Kohana дать ли обрабатывать мой контроллер и использовать мой новый хук?
Решение
Это работает для меня:
Event::run('system.404');
Какую версию Kohana вы используете?
Другие советы
Kohana / Общее / Обработка ошибок / Kohana_404_Exception
/**
* @param string URL of page
* @param string custom error template
*/
throw new Kohana_404_Exception([string $page [, string $template]]);
Документация Kohana подсказывает вам, как это сделать это:
throw HTTP_Exception::factory(404, 'File not found!');