Rebonjour,
J'arrive bientôt à la fin de mon projet avec CakePHP et je me posais une question.
Est-il possible de mettre un message d'erreur ou de faire une redirection sur un article si celui-ci n'existe pas ?
Je m'explique avec un exemple car je ne dois pas être très clair :)
Si je tente d'accéder à : films/view/15 cela fonctionne car j'ai bien un film avec un id de 15, mais si je modifie l'url par films/view/50 cela me retourne une page comme les autres mais vide là où il devrait y avoir des valeurs... Logique car je n'ai pas de films avec un id de 50...
Comment pourrais-je procéder dans mon controller pour ne pas afficher cette page ?
Actuellement j'ai ceci dans mon controller films_controller.php :
function view($id = null){
if (!$id) {
$this->Session->setFlash(__('Film non valide', true));
$this->redirect(array('action' => 'index'));
}
}
Merci pour votre aide.
Tu pourrais faire la liste de tous tes films avec
$this->Model->find('list',array(
"fields"=>"id"
));
et tester si $id est présent dans le tableau.
PS : je suis pas sur pour "fields"=>"id".
Bonne chance.
Merci pour ta réponse :)
Finalement, j'ai fait ça à la mode bourrin :
Dans ma vue :
<?php if($film'Film']'id'] == ''):?>
<?php header('Location: http://localhost/dvdlist/films/'); ?>
<?php endif;?>
Si quelqu'un connait un autre moyen plus "propre" pour faire une redirection directement dans une vue, je suis preneuse :)
Merci et bonne soirée.