Question

I have a controller called articles, which creates the articles model which gets the relevant data from the database.

I want to, if the method I call returns false, to trigger a 404 error. This is what I have so far.

 $articleName =  $this->uri->segment('articles');

 $article = new Articles_Model();

 $data = $article->getArticleUsingSlug($articleName);

 if (!$data) {
    Kohana::show_404; // This doesn't work.
 }

I just added my own custom hook which redirects the user to an actual 404 (/articles/page-not-found/) as triggered by Kohana, but is there a way I can invoke its internal 404 method to make Kohana give up processing my controller and use my new hook ?

Was it helpful?

Solution

This works for me:

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

What version of Kohana are you using?

OTHER TIPS

Kohana / General / Error-handling / Kohana_404_Exception

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

Kohana Docs tells you way to do it:

throw HTTP_Exception::factory(404, 'File not found!');
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top