2010-11-13 25 views
1

J'utilise Symfony 1.4 avec Propel comme ORM. J'ai créé un système de connexion pour ma page d'accueil, où l'utilisateur peut se connecter et modifier les détails de son compte. La page est définie avec Permission = "user" et Group = "user". Mais lors de la connexion avec un utilisateur qui n'appartient pas à ce groupe, redirige vers la page par défaut de symfonys (l'utilisateur n'a pas les informations d'identification pour voir cette page). ces pages peuvent-elles être personnalisées et définir nos propres messages personnalisés ... et comment pouvons-nous définir des pages d'erreur personnalisées?pour définir la redirection d'erreur personnalisée dans symfony?

le code que je l'ai utilisé,

if($this->getContext()->getUser()->hasCredential("user")) 
{ 
    $user_name=$this->getUser()->getGuardUser()->getUsername(); 
    $this->name=$user_name; 
} 
else 
{ 
    $this->forward("userlogin", "error"); 
} 

mais je ne sais pas c'est la meilleure façon ..

Répondre

4

Vous pouvez modifier les modèles récrites dans votre application: apps/<appname>/modules/default/templates/error404Success.php

Pour voir la liste des modèles possibles, regardez: lib/vendor/symfony/lib/controller/default/templates/

Maintenant à propos des informations d'identification. Au fichier apps/<appname>/config/settings.yml:

# ... 

all: 
    # ... 

    .actions: 
    login_module:   sfGuardAuth # Change this to whatewer You want. 
    login_action:   signin  # Change this to whatewer You want. 

    error_404_module:  default  # Change this to whatewer You want. 
    error_404_action:  error404  # Change this to whatewer You want. 

Donc, si vous voulez changer juste modèle - changement juste modèle. Mais si vous voulez quelque chose de plus puissant - changer settings.yml et écrire du code personnalisé.

+0

hey merci @petraszd –

+0

fait cela ne fonctionne pas! J'avais fait l'action (error404Success.php) dans le module et ai mis la configuration à error_404_module: mymodule et error_404_action: error404. mais ne fonctionne pas ... il est redirigé vers celui par défaut .. –

+0

a eu le problème, en fait je vérifiais en mode Dev et donc il ne me montre pas la page d'erreur personnalisée! ... –

0

Vous devriez regarder les journaux pour voir pourquoi il ne trouve pas votre action 404, ce qu'il cherche, etc.

+0

ok, je vais regarder dans ce ... est-ce quelque chose à faire dans le fichier Route? –

+0

Merci @Gregoire, votre commentaire a été très utile pour arriver à l'erreur ... –

+0

Vous êtes les bienvenus :) – Gregoire