2009-05-05 50 views
10

我有一個名爲articles的控制器,它創建了從數據庫獲取相關數據的文章模型。在Kohana中,你能觸發404錯誤嗎?

我想,如果我調用的方法返回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自己的自定義掛鉤(/條/頁未找到/)由Kohana的觸發,但有一個方法可以讓我援引其國內404方法讓Kohana放棄處理我的控制器並使用我的新鉤子?

+0

你就不能使用PHP頭方法,然後死()? – 2011-02-02 10:11:34

+0

@Nael El Shawwa當有更好的選擇可用時不會。 – alex 2011-02-02 13:31:33

回答

11

這個工作對我來說:

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

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

+0

版本是:2.3.2 – alex 2009-05-06 00:16:07

11

的Kohana /一般/錯誤處理/ Kohana_404_Exception

/** 
* @param string URL of page 
* @param string custom error template 
*/ 
throw new Kohana_404_Exception([string $page [, string $template]]); 
1

Kohana Docs告訴你的方式來做到這一點:

throw HTTP_Exception::factory(404, 'File not found!');