IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Symfony PHP Discussion :

Sfdoctrineguard et profil


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    207
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 207
    Par défaut Sfdoctrineguard et profil
    Bonsoir.

    je possède deux tables sf_guard_user et sf_guard_user_profile.

    Sur l'index du site j'affiche une liste des membres avec l'id,l'username,nom et prénom, tout marche nickel.

    Un clic sur chaque membre permet d'avoir les détails (voic l'url de test /user/show/id/1).

    Dans mon executeshow j'ai fais ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $this->sf_guard_user = Doctrine::getTable('sfGuardUser')->find($request->getParameter('id'));
    Dans ma template j'essaye donc d'afficher les champs du profil mais je n'y arrive pas.

    Le code présent dans mon executeshow est il suffisant ou alors il faudrait rajouter qq chose permettant de recuperer les infos du profil (j'avais cru comprendre que le plugin s'en chargeait implicitement)?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $this->sf_guard_user_profile = $this->sf_guard_user->getSfGuardUserProfile()
    Car même en faisant ca si dans ma template je fais un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sf_guard_user->getSfGuardUserProfile()->getNom()
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sf_guard_user_profile->getNom()
    j'obtiens une jolie erreur.

    Merci par avance

    un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var_dump( $sf_guard_user->getSfGuardUserProfile())
    donne ceci

    object(sfOutputEscaperIteratorDecorator)[84]
    private 'iterator' =>
    object(IteratorIterator)[86]
    protected 'value' =>
    object(Doctrine_Collection)[92]
    protected 'data' =>
    array
    0 =>
    object(sfGuardUserProfile)[94]
    ...
    protected '_table' =>
    object(sfGuardUserProfileTable)[64]
    protected '_data' =>
    array
    ...
    protected '_identifier' => string 'id' (length=2)
    protected '_identifierType' => int 1
    protected '_conn' =>
    object(Doctrine_Connection_Mysql)[18]
    ...
    protected '_identityMap' =>
    array
    ...
    protected '_repository' =>
    object(Doctrine_Table_Repository)[80]
    ...
    protected '_columns' =>
    array
    ...
    protected '_fieldNames' =>
    array
    ...
    protected '_columnNames' =>
    array
    ...
    protected 'columnCount' => int 12
    protected 'hasDefaultValues' => null
    protected '_options' =>
    array
    ...
    protected '_tree' => null
    protected '_parser' =>
    object(Doctrine_Relation_Parser)[72]
    ...
    protected '_templates' =>
    array
    ...
    protected '_filters' =>
    array
    ...
    protected '_generators' =>
    array
    ...
    protected '_invokedMethods' =>
    array
    ...
    protected 'record' =>
    object(sfGuardUserProfile)[79]
    ...
    protected 'attributes' =>
    array
    ...
    protected 'parent' =>
    object(Doctrine_Connection_Mysql)[18]
    ...
    protected '_impl' =>
    array
    ...
    protected '_params' =>
    array
    ...
    protected '_locator' => null
    protected '_resources' =>
    array
    ...
    protected '_snapshot' =>
    array
    0 =>
    object(sfGuardUserProfile)[94]
    ...
    protected 'reference' =>
    object(sfGuardUser)[74]
    protected 'profile' => null
    protected 'groups' => null
    protected 'permissions' => null
    protected 'allPermissions' => null
    protected '_node' => null
    protected '_id' =>
    array
    ...
    protected '_data' =>
    array
    ...
    protected '_values' =>
    array
    ...
    protected '_state' => int 3
    protected '_modified' =>
    array
    ...
    protected '_errorStack' => null
    protected '_references' =>
    array
    ...
    protected '_pendingDeletes' =>
    array
    ...
    protected '_serializeReferences' => boolean false
    private '_oid' => int 1
    protected '_table' =>
    object(sfGuardUserTable)[49]
    ...
    protected '_locator' => null
    protected '_resources' =>
    array
    ...
    protected 'referenceField' => string 'sf_guard_user_id' (length=16)
    protected 'relation' =>
    object(Doctrine_Relation_ForeignKey)[83]
    protected 'definition' =>
    array
    ...
    protected 'keyColumn' => null
    protected '_locator' => null
    protected '_resources' =>
    array
    empty
    protected 'escapingMethod' => string 'esc_specialchars' (length=16)

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    207
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 207
    Par défaut
    Pour faire avancer les choses je viens de faire un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    print_r($sf_guard_user->getSfGuardUserProfile())
    Je met une partie du résultat tout en bas.
    On voit donc bien que le nom et prenom par exemple sont retournés.

    Je fais donc un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo $sf_guard_user->getSfGuardUserProfile()->getNom()
    J'ai en retour un warning et le nom ne s'affiche pas.
    Warning: call_user_func_array() expects parameter 1 to be a valid callback, class 'Doctrine_Collection' does not have a method 'getNom' in C:\wamp\bin\php\php5.3.0\PEAR\symfony\view\escaper\sfOutputEscaperObjectDecorator.class.php

    sfOutputEscaperIteratorDecorator Object ( [iterator:sfOutputEscaperIteratorDecorator:private] => IteratorIterator Object ( ) [value:protected] => Doctrine_Collection Object ( [data:protected] => Array ( [0] => sfGuardUserProfile Object ( [_node:protected] => [_id:protected] => Array ( [id] => 1 ) [_data:protected] => Array ( [id] => 1 [sf_guard_user_id] => 1 [nom] => nomutili1 [prenom] => prenomutil1 [ville] => villeutil1 [siteweb] => Doctrine_Null Object ( ) [texte_libre] => Doctrine_Null Object ( ) [age] => Doctrine_Null Object ( )

  3. #3
    Membre chevronné
    Inscrit en
    Août 2007
    Messages
    360
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 360
    Par défaut
    Salut,

    Il existe une méthode getProfile() dans sfGuardUser.

    Sinon, tu peux en implémenter une :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    public function getProfile()
    {
      $q = Doctrine_Query::create()
        ->from('sfGuardUserProfile up')
        ->where('up.user_id = ?', $this->id)
      return $q->fetchOne();
    }
    A insérer par exemple dans sfGuardUser.class.php

    A+

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    207
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 207
    Par défaut
    Justement vu qu'il existe un méthode getProfile() je ne comprends pas pourquoi je ne peux pas faire un $sf_guard_user->getProfile();

    En créant moi même la méthode ca marche effectivement.

    A moins que cette méthode n'existe pas par défaut (je croyais que oui).

  5. #5
    Membre chevronné
    Inscrit en
    Août 2007
    Messages
    360
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 360
    Par défaut
    Bonsoir,

    Je crois qu'elle existe mais personnellement je ne l'ai jamais utilisée pour des raisons de rapidité.

    Si tu trouves comment l'utiliser sans l'overider, je suis preneur...

    A+

    Mathieu

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    207
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 207
    Par défaut
    Citation Envoyé par mathieu44800 Voir le message
    Bonsoir,

    Je crois qu'elle existe mais personnellement je ne l'ai jamais utilisée pour des raisons de rapidité.

    Si tu trouves comment l'utiliser sans l'overider, je suis preneur...

    A+

    Mathieu
    Je te tiendrais au courant si je trouve quelque chose

Discussions similaires

  1. [PROFILER][THREAD][java.prof] outil gratuit/complet?
    Par narmataru dans le forum Général Java
    Réponses: 11
    Dernier message: 16/11/2005, 12h28
  2. compréhension du profil d'une fonction
    Par lor dans le forum MFC
    Réponses: 7
    Dernier message: 08/01/2004, 12h59
  3. C'est quoi "Profile" dans le assign du XMLGram ?
    Par Lux interior dans le forum XMLRAD
    Réponses: 2
    Dernier message: 28/02/2003, 11h37
  4. Profiler pour Java
    Par donde dans le forum Tests et Performance
    Réponses: 1
    Dernier message: 10/02/2003, 17h36
  5. [API win32] Récupérer le répertoire d'un profile
    Par sbeu dans le forum API, COM et SDKs
    Réponses: 3
    Dernier message: 27/09/2002, 12h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo