получить PHP функцию (Symfony 4,2) - PullRequest
0 голосов
/ 20 июня 2020

У меня следующая ошибка, которую я не понимаю: «Попытка вызвать функцию« pasPointer »из пространства имен« App \ Controller ».» Код, который идет с ним:

public function emargementsParCours(EntityManagerInterface $em, Request $request): Response
{
  $session = $this->get('session');
  $user = $this->getUser();
  $teacherId = $user->getId();
  $idCours = $request->get('idCours');
  //dd($idCours);
  $utilisateurEtudiant = $this->getDoctrine()->getRepository(Utilisateur::class)->find($user);

  $listeDePointage = $em->getRepository(ProfCours::class)->findHorairesParCours($em, $teacherId, $idCours);


  return $this->render('profEmargementsParCours.twig', array(
                                                     'listeDePointage' => $listeDePointage,
                                                     'prenom' => $user->getPrenomUtilisateur(), 
                                                     'nom' => $user->getNomUtilisateur()));
}

public function listeEmargementsPassesParCours(EntityManagerInterface $em, Request $request): Response
{
  $pasdePointage = pasPointer($idCours, $idDate, $idCreneau);

  return $this->render('panelProfListeEmargements.twig', array(
                                                     'pasdePointage' => $pasdePointage,
                                                     'prenom' => $user->getPrenomUtilisateur(), 
                                                     'nom' => $user->getNomUtilisateur()));
}

// function called
public function pasPointer($idCours, $idDate, $idCreneau) { 
// SQL function executed
    $requestPasPointer = "SELECT ec.etudiant
    FROM etudiant_cours ec
    left JOIN pointage po 
        inner JOIN utilisateur u 
           on u.id = po.utilisateur_etudiant_id
        inner JOIN cours_planning cp 
           on cp.id = po.cours_id 
          and cp.cours = :conditions_particulieres_generales_client
          and cp.plage_horaire_id = :conditions_particulieres_generales_client
          and cp.date_cours = :conditions_particulieres_generales_client
      ON po.utilisateur_etudiant_id = ec.etudiant
    where po.utilisateur_etudiant_id is null";              
    $exectPasPointer = $bdd->prepare( $requestPasPointer );
    $exectPasPointer->execute( array( 
    ':idCours' => $idCours,
    ':idDate' => $idDate,
    ':idCreneau' => $idCreneau
    ));
}

Я хочу получить результат функции, но не понимаю этой ошибки. Функции находятся в одном контроллере, я делаю простой вызов. а идея? спасибо!

1 Ответ

1 голос
/ 20 июня 2020

Я думаю, ваша функция pasPointer живет внутри вашего класса контроллера. Если это так, измените эту строку:

$pasdePointage = pasPointer($idCours, $idDate, $idCreneau);

To:

$pasdePointage = $this->pasPointer($idCours, $idDate, $idCreneau);

Вы заметите добавление $this-> в моем предложении. $this - это ссылка на текущий объект (класс контроллера), а -> используется для вызова метода в вашем классе контроллера (если pasPointer находится в вашем классе контроллера, это метод вашего класса).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...