Bonjour,
J'ai suivis les 7jours du tuto, et j'ai regardé les sources cependant je suis perdu ^^,
j'ai modifier les fichiers 'UsersController', 'config' et ajouter de nouveaux fichiers: 'membre' et 'membres'.
Mon système est simple,
http://site.fr/users/membre/admin-2 => affiche le membre admin et son user_id '2'.
http://site.fr/users/membres/ => affiche une page qui récupère tout les membres inscrits et lorsque l'on clique sur le pseudo cela nous redirige sur son profil qui est mon exemple affiche au dessus.
http://site.fr/users/membre/ => est défini dans le 'config' comme Router vers http://site.fr/users/membres/ pour éviter les erreurs.
Cependant et la c'est mon problème, quand on écrit: http://site.fr/users/membre/nimportequoi, je contient plein d'erreur sur ma page plus 'page introuvable', j'aimerais seulement avoir Page introuvable qui s’affiche et non tout les problèmes php et mysql.
Fichier UsersController:
/**
* liste les membres
**/
function membres(){
$perPage = 10;
$this->loadModel('Profil');
$d'users'] = $this->Profil->find(array(
'order' => 'Profil.id DESC',
'limit' => ($perPage*($this->request->page-1)).','.$perPage,
));
$this->set($d);
}
/**
* Affiche un membre en particulier
**/
function membre($id,$pseudo){
$this->loadModel('Profil');
$d'users'] = $this->Profil->findFirst(array(
'conditions' => array('Profil.id'=>$id,'Profil.pseudo'=>$pseudo),
'join' => array('users as User'=>'User.id=Profil.user_id')
));
$d'matos'] = $this->Profil->findFirst(array(
'conditions' => array('Profil.id'=>$id,'Profil.pseudo'=>$pseudo),
'join' => array('materiels as Matos'=>'Profil.user_id=Matos.user_id'),
));
if(empty($d'users'])){
$this->e404('Page introuvable');
}
if($pseudo != $d'users']->pseudo){
$this->redirect("profil/view/id:$id/pseudo:".$d'users']->pseudo,301);
}
$this->set($d);
}
Fichier config:
Router::connect('membres','users/membres');
Router::connect('users/membre','users/membres');
Router::connect('users/membre/:pseudo-:id','users/membre/id:([0-9]+)/pseudo:([a-z0-9\-]+)');
Merci de votre aide.
Cordialement Alexis.