提问者:小点点

获取PHP函数(Symfony 4.2)


我有以下我不理解的错误:“试图从命名空间”app\controller“调用函数”pasPointer“。” 随它而来的代码:

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个答案

匿名用户

我认为您的函数pasPointer位于您的controller类中。 如果是这种情况,请更改这一行:

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

致:

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

您将注意到在我的建议中添加了$this->$this是对当前对象(controller类)的引用,->用于调用controller类上的方法(如果PasPointer存在于controller类中,则它是类的方法)。