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 :

Attempted to call an undefined method named [3.x]


Sujet :

Symfony PHP

  1. #1
    Membre du Club
    Homme Profil pro
    .
    Inscrit en
    Avril 2016
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : .

    Informations forums :
    Inscription : Avril 2016
    Messages : 108
    Points : 49
    Points
    49
    Par défaut Attempted to call an undefined method named
    Bonjour,

    Toujours sur la gestion d'un emploi du temps avec fullCalendarbundle, j'ai enfin réussi a afficher mes evenements:

    Nom : Calendar.PNG
Affichages : 1804
Taille : 3,2 Ko


    Le probleme etant que la dans ma classe Event je n'ai pas mis de titre car je souhaite que ce soit le titre de ma prestation.

    Pour l'instant j'envoie donc juste un objet Event transformé en json. $event = user->getEvent;

    J'aimerai récuperer mon titre du coup, j'ai essayé un $title = $event->getTypePrestation->getTitle(); Mes relations sont en ManyToOne

    J'obtiens cette erreur : Attempted to call an undefined method named "getTypePrestation" of class "Doctrine\ORM\PersistentCollection".

    Quelqu'un aurait il une solution ??

    Voici la classe Event(Prestation chez moi)

    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
    class Prestation extends FullCalendarEvent
    {
        const SET_DATA = 'fullcalendar.set_data';
     
        /**
         * @ORM\Id()
         * @ORM\GeneratedValue(strategy="AUTO")
         * @ORM\Column(type="integer")
         */
        protected $id;
     
        /**
         * @ORM\Column(type="datetime")
         * @Assert\NotBlank()
         */
        protected $start;
     
        /**
         * @ORM\Column(type="datetime")
         * @Assert\NotBlank()
         */
        protected $end;
     
     
        /**
         * @ORM\ManyToOne(targetEntity="AividanceBundle\Entity\User",inversedBy="prestationAdmin",fetch="EAGER")
         * @ORM\JoinColumn(name="user_id",referencedColumnName="id",nullable=false,onDelete="RESTRICT")
         */
        protected $adminPrestation;
     
     
        /**
         * @ORM\ManyToOne(targetEntity="AividanceBundle\Entity\User",inversedBy="prestationClient",fetch="EAGER")
         * @ORM\JoinColumn(name="client_id",referencedColumnName="id",nullable=false,onDelete="RESTRICT")
         */
        protected $clientPrestation;
     
        /**
         * @ORM\ManyToOne(targetEntity="AividanceBundle\Entity\User",inversedBy="prestationSalarie",fetch="EAGER")
         * @ORM\JoinColumn(name="salarie_id",referencedColumnName="id",nullable=false,onDelete="RESTRICT")
         */
        protected $salariePrestation;
     
        /**
         * @ORM\ManyToOne(targetEntity="AividanceBundle\Entity\Voiture",inversedBy="prestation",fetch="EAGER")
         * @ORM\JoinColumn(name="voiture_id",referencedColumnName="id",onDelete="RESTRICT")
         */
        protected $voiture;
     
        /**
         * @ORM\ManyToOne(targetEntity="AividanceBundle\Entity\Type_prestation",inversedBy="prestation",fetch="EAGER")
         * @ORM\JoinColumn(name="type_prestation_id",referencedColumnName="id",nullable=false,onDelete="RESTRICT")
         */
        protected $type_prestation;
    Tout aide sera la bienvenue

  2. #2
    Membre du Club
    Homme Profil pro
    .
    Inscrit en
    Avril 2016
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : .

    Informations forums :
    Inscription : Avril 2016
    Messages : 108
    Points : 49
    Points
    49
    Par défaut
    Premier probleme résolu, il s'agit d'une collection donc il fallait un foreach ...

    Par contre comme vu sur la capture au dessus , j'aimerai savoir d'ou peut venir le fait que le nom de mes evenements soir Object object ??

  3. #3
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2013
    Messages
    739
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Novembre 2013
    Messages : 739
    Points : 1 022
    Points
    1 022
    Par défaut
    dans l'affichage du calendrier coté twig , au lieu de renvoyer tout l'objet en javascript il faut afficher juste des attributs de ces objets.
    je crois que c'est un javascript Object

  4. #4
    Membre du Club
    Homme Profil pro
    .
    Inscrit en
    Avril 2016
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : .

    Informations forums :
    Inscription : Avril 2016
    Messages : 108
    Points : 49
    Points
    49
    Par défaut
    Salut !

    Pourrais tu m'en dire un peu plus ? Parce que coté twig je n'ai pas grand chose donc je ne vois pas quoi faire ! J'ai seulement des includes des fichiers :

    Nom : fullcalendar.PNG
Affichages : 1809
Taille : 28,7 Ko

    Après il est vrai que je renvoie l'objet entier donc je ne sais pas comment faire pour lui envoyer que certaine partie, voici coment j'ai fait pour l'instant :

    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
     public function loadPresta(){
           /**
            * @var $user User;
            */
            $user = $this->getUser();
     
     
            /**
             * @var $prestations Prestation
             */
            // On récupere les prestations de l'utilisateur
            $prestations = $user->getPrestationSalarie();
     
            foreach ($prestations as $prestation) {
                /**
                 * @var $prestation Prestation
                 */
                $prestation->setTitle($prestation->getTypePrestation()->getTitle());
            }
     
     
            //récupération du service
            $serializer = $this->get('jms_serializer');
     
            //$prestation en json
           $json = $serializer->serialize($prestations,'json');
     
     
     
            //création objet JsonReponse
            $json_reponse = new JsonResponse();
     
            // insérer notre prestation en json dans le JsonReponse
            $json_reponse->setContent($json);
     
     
     
     
     
     
             return $json_reponse;
     
     
     
        }

  5. #5
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2013
    Messages
    739
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Novembre 2013
    Messages : 739
    Points : 1 022
    Points
    1 022
    Par défaut
    bonjour,

    les fichiers twig offerts par un bundle externe peuvent etre modifiés car ici je vois deux includes twig qui contiennent certainement l’implémentation de ce que tu vois.

    Etape 1:
    commençons par copier ces fichiers twig ( ils sont sous vendor) et les mettres sous app et tester si ca modifie ou pas
    Etape 2 :
    une fois on a le code javascript en clair , on manipule comme on veux ces javascript objets
    https://www.w3schools.com/js/js_objects.asp

  6. #6
    Membre du Club
    Homme Profil pro
    .
    Inscrit en
    Avril 2016
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : .

    Informations forums :
    Inscription : Avril 2016
    Messages : 108
    Points : 49
    Points
    49
    Par défaut
    Merci pour ta réponse,

    Tout d'abord, j'ai finalement trouvé un solution donc je ne sais pas si c'est la bonne et si la tienne et meilleure( ou du moins faites d'une facon plus "pro")

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    $event = null;
                foreach ($prestations as $prestation) {
     
                    /**
                     * @var $prestation Prestation
                     */
                    $prestation->setTitle($prestation->getTypePrestation()->getTitle());
                    $title = $prestation->getTypePrestation()->getTitle();
                    $start = $prestation->getStart();
                    $end = $prestation->getEnd();
                    $event[] = array('title' => $title, 'start' => $start->format('Y-m-d'), 'end' => $end->format('Y-m-d'));
     
                }
    J'ai smiplement envoyé les 3 attributs demandé, en convertissant la date en string! Depuis plus de "object object" afficher ! Apres je ne sais pas si c'est la bonne façon de faire!

  7. #7
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2013
    Messages
    739
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Novembre 2013
    Messages : 739
    Points : 1 022
    Points
    1 022
    Par défaut
    ah ok , j'ai pas fais attention que ces variables sont des dates.
    c'est normal que s'est considéré comme objet.
    une valeur date (php ou javacript ) doit être converti en string pour l'affiché au format voulu.

    c'est résolu simplement

  8. #8
    Membre du Club
    Homme Profil pro
    .
    Inscrit en
    Avril 2016
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : .

    Informations forums :
    Inscription : Avril 2016
    Messages : 108
    Points : 49
    Points
    49
    Par défaut
    Yep merci pour ton aide en tout cas !

    Bonne continuation !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [sfGuard] Call to undefined method myUser::setReferer
    Par jylac dans le forum Plugins
    Réponses: 3
    Dernier message: 11/06/2010, 00h13
  2. [1.x] Call to undefined method CommandeForm::save()
    Par sacricri dans le forum Symfony
    Réponses: 5
    Dernier message: 09/01/2010, 16h24
  3. [PDO] Call to undefined method PDOStatement::lastinsertid()
    Par megacool dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 18/10/2008, 15h32
  4. [Artichow] Call to undefined method Graph::getDrawer()
    Par belocom dans le forum Bibliothèques et frameworks
    Réponses: 5
    Dernier message: 17/04/2008, 22h56
  5. Réponses: 0
    Dernier message: 25/02/2008, 17h28

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