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 :

Couldn't call Doctrine_Core::set()


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Mars 2007
    Messages
    260
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 260
    Par défaut Couldn't call Doctrine_Core::set()
    Une autre erreur avec symfony.
    Mon modèle marchait bien avant, quand j'ai fait un symfony doctrine:build --all. Depus, quand j'essaie d'accéder à monsite/emission/new, ca renvoie l'erreur que voici:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Couldn't call Doctrine_Core::set(), second argument should be an instance of Doctrine_Record or Doctrine_Null when setting one-to-one references.
    Et ca ca se passe dans le frontend. Dans le backend, le formulaire s'affiche bien et j'enregistre des données sans problème. Dans le frontend, monsite/emission affiche bien la liste des données, mais monsite/emission/show/id retourne la même erreur. Vous pouvez me l'expliquer ? Un coup d'oeil à mon schema ? Le voici. (Désolé, un peu long)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    emission: 
      actAs: 
       Sluggable: 
        unique:      true
        fields:      [titre]
        canUpdate:   true
      columns: 
       programme_id: 
        type: integer
       date_diffusion: 
        type: timestamp
        notnull: true
       genre_id: 
        type: integer
        notnull: true
       media: 
        type: enum
        length: 1
        values: ['1','2']}
       membre_id: 
        type: integer
        notnull: true
       titre: 
        type: string(255)
        notnull: true
        unique: true
       sous_titre: 
        type: string(255)
       lien_media: 
        type: string(255)
        notnull: true
        unique: true
       lien_script: 
        type: string(255)
       langue_id: 
        type: integer
        notnull: true
       theme: 
        type: string(255)
        notnull: true
       sujet: 
        type: clob
       image:
        type: string(255)
       rank:
        type: integer
      relations: 
       programme: 
        local: programme_id
        foreign: id
       genre: 
        local: genre_id
        foreign: id
       membre: 
        local: membre_id
        foreign: id
       langue: 
        local: langue_id
        foreign: id
       ressource:
        local: id
        foreign: emission_id

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    396
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 396
    Par défaut
    Petite question : tu as ce message d'erreur aussitôt que tu vas sur la page New, ou lorsque tu soumets un nouveau formulaire ?

    Également, cela serait bien que tu traces quelle est l'instruction qui soulève l'erreur : si tu n'as pas de débugger d'installé, je te le conseille vivement !! C'est un outil indispensable au développeur (xdebug par exemple)

  3. #3
    Membre éclairé
    Inscrit en
    Mars 2007
    Messages
    260
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 260
    Par défaut
    Aussitôt sur la page New. Je précise que ca se passe uniquement dans le frontend, pas de pb dans le backend.

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    396
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 396
    Par défaut
    Si cela ne se passe que dans une appli et pas l'autre, j'aurais tendance à dire qu'il n'y a que très peu de risques que ça vienne de ton modèle (schema, classes de ton répertoire lib > form / model).

    Du coup : quelles sont les différences entre tes contrôleurs / vues ?
    Pourrais-tu poster les portions de code en question ?

    Également, as-tu un débugger ?

    Quant au message d'erreur, il semblerait que tu veuilles embarquer dans ton objet un sous-objet (celui de ta relation) que tu n'as pas initialisé correctement : Doctrine ne le reconnaît pas en tant que Doctrine_Record.

  5. #5
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut
    Pour commencer une petite vidange manuel du cache, au cas où...

    Ensuite, tu dis que cela marche en backend mais pas en frontend, ceci sous entend que tu utilises le même formulaire entre les deux applications, ce qui me surprendrais un peu. Peux-tu préciser ?

  6. #6
    Membre éclairé
    Inscrit en
    Mars 2007
    Messages
    260
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 260
    Par défaut
    Vous avez tous les deux raison. J'utilise le même formulaire pour le front que pour le back, et sincèrement je n'ai jamais soupçonné un problème avec ca. C'est mal ? Bon, il faut préciser qu'à terme, je n'aurai pas besoin de l'action new dans le front. C'est à la fin de mon projet que je supprime les actions que je n'aurais pas à utiliser. Seulement, je veux un projet propre qui ne me cache aucune mauvaise surprise.
    Bibonec, tu as raison, car l'erreur se produit dans le show aussi. En inspectant le code, j'ai constaté que l'executeShow appelle une fonction qui prend en paramètre un id qui n'existe plus en base de donnée. J'ai remis à jour l'id et l'erreur a disparu dans le show. Quant au new, nulle trace de cet id, car executeNew se résume à $this->form = new machinForm(). Bien sur dans le configure de machinForm, il y a un sfWidgetFormDoctrineChoice relié à la table d'où devait provenir l'id, mais je ne vois pas de problème là, puisqu'il est paramétré comme suit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sfWidgetFormDoctrineChoice(array('model' => $this->getRelatedModelName('membre'), 'add_empty' => false))
    En plus ca marche bien dans le backend.

Discussions similaires

  1. Réponses: 3
    Dernier message: 12/04/2011, 10h26
  2. Call shell et my.settings
    Par Lechette dans le forum VB.NET
    Réponses: 7
    Dernier message: 27/11/2008, 19h45
  3. set term ^
    Par tux dans le forum Débuter
    Réponses: 8
    Dernier message: 12/10/2004, 20h42
  4. Query data set
    Par Sandra dans le forum JBuilder
    Réponses: 3
    Dernier message: 20/01/2003, 10h08
  5. character set // Nls_lang
    Par fopicht dans le forum Oracle
    Réponses: 2
    Dernier message: 23/05/2002, 12h04

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