10

我有一个名为 的控制器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.
 }

我刚刚添加了我自己的自定义钩子,它将用户重定向到由 Kohana 触发的实际 404(/articles/page-not-found/),但是有没有一种方法可以调用其内部 404 方法让 Kohana 放弃处理我的控制器并使用我的新钩子?

4

3 回答 3

11

这对我有用:

Event::run('system.404');

您使用的是什么版本的 Kohana?

于 2009-05-06T00:10:21.793 回答
11

Kohana / 常规 / 错误处理 / Kohana_404_Exception

/**
 * @param  string  URL of page
 * @param  string  custom error template
 */
throw new Kohana_404_Exception([string $page [, string $template]]);
于 2009-08-11T12:40:32.783 回答
1

Kohana Docs告诉你如何做到这一点:

throw HTTP_Exception::factory(404, 'File not found!');
于 2017-10-09T03:28:36.433 回答