Basé sur this documentation, j'ai mis en place un attraper tous les route qui achemine vers une page d'erreur.Besoin d'aide avec Kohana 3 et attraper tous les itinéraires se transformant en une erreur 404
Voici la dernière route dans mon bootstrap.php
Route::set('default', '<path>', array('path' => '.+'))
->defaults(array(
'controller' => 'errors',
'action' => '404',
));
Cependant, je continue à obtenir cette exception jetée quand je tente d'aller à une page non existante
Kohana_Exception [0]: itinéraire requis paramètre non transmis: chemin
Si le segment <path>
est facultatif (c'est à dire. envelopper entre parenthèses), il semble juste de charger la route home
, qui est ...
Route::set('home', '')
->defaults(array(
'controller' => 'home',
'action' => 'index',
));
La route de la maison est d'abord défini.
J'exercerai ma demande principale comme si
$request = Request::instance();
try {
// Attempt to execute the response
$request->execute();
} catch (Exception $e) {
if (Kohana::$environment === Kohana::DEVELOPMENT) throw $e;
// Log the error
Kohana::$log->add(Kohana::ERROR, Kohana::exception_text($e));
// Create a 404 response
$request->status = 404;
$request->response = Request::factory(Route::get('default')->uri())->execute();
}
$request->send_headers();
echo $request->response;
Cela signifie que la 404 en-tête est envoyé au navigateur, mais je suppose en envoyant la demande à la capture toute la route, alors il doit montrer l'ensemble d'erreur 404 dans mon contrôleur d'erreurs.
<?php defined('SYSPATH') or die('No direct script access.');
class Controller_Errors extends Controller_Base {
public function before() {
parent::before();
}
public function action_404() {
$this->bodyClass[] = '404';
$this->internalView = View::factory('internal/not_found');
$longTitle = 'Page Not Found';
$this->titlePrefix = $longTitle;
}
}
Pourquoi ne montrera-t-il pas ma page d'erreur 404?
Avez-vous créé Exception404 ou est-ce défini par Kohana? Merci pour votre réponse aussi :) – alex
c'est le mien. J'ai ajouté son code à la réponse – zerkms
Merci tas! C'est intéressant et utile donc je vais accepter. – alex