2017-04-07 6 views
0

나는 3 개 테이블을하고 난 다음과 같이 서로 연결입니다 YAML을 사용심포니를 조인이

교육 :

oneToMany: 
     exerciseTrainings: 
      targetEntity: ExerciseTraining 
      mappedBy: training 
      cascade: ["persist", "merge"] 
      joinColumn: 
       name: id 
       referencedColumnName: training_id 

연습 :

oneToMany: 
    exerciseTrainings: 
     targetEntity: ExerciseTraining 
     mappedBy: exercise 
     cascade: ["persist", "merge"] 
     joinColumn: 
      name: id 
      referencedColumnName: exercise_id 

trainingExercises :

manyToOne: 
    exercise: 
     targetEntity: Exercise 
     inversedBy: exerciseTrainings 
     joinColumn: 
      name: exercise_id 
      referencedColumnName: id 
    training: 
     targetEntity: Training 
     inversedBy: exerciseTrainings 
     joinColumn: 
      name: training_id 
      referencedColumnName: id 

exerciseTraining table:

내 운동과 관련된 테이블 Exercises (기본적으로 exercise_translation에서 오는 이름이지만 이름은 문제가 아님)의 "exercise name"이 필요하며 exerciseTrainings 테이블에서 "세트"가 필요합니다. 그래서 나는 훈련을하고 테이블에 가입하려고 :

$training = $em->getRepository('TrenkaTrainingBundle:Training')->findOneByAlias($alias); 

$exercises = $em 
    ->getRepository('TrenkaTrainingBundle:Exercise') 
    ->createQueryBuilder('e') 
    ->innerJoin('e.exerciseTrainings', 't') 
    ->where('t.training_id = ' . $training->getId()) 
    ->getQuery() 
    ->getResult(); 

을하지만이 오류 얻을 :

Class TrainingBundle\Entity\ExerciseTraining has no field or association named training_id

어쩌면 누군가가이 같은 구조를하고 일을 만드는 방법을 알고? TWIG에서 2-3 표의 값을 제시하는 방법은 무엇입니까? 당신이 당신의 ExerciseTraining 엔티티에, 당신의 where 절에서 사용할 수 없도록

답변

1

당신은 그래서 당신이 뭔가를 시도 할 수 있습니다 교육 필드가 당신의 ExerciseTraining 엔티티에 training_id 필드가 없습니다 : 답변

$exercises = $em 
    ->getRepository('TrenkaTrainingBundle:Exercise') 
    ->createQueryBuilder('e') 
    ->innerJoin('e.exerciseTrainings', 'et') 
    ->where('et.training = :training') 
    ->setParameter('training', $training) 
    ->getQuery() 
    ->getResult(); 
+0

감사하지만 오류에 도달 : 문자열의 예상 끝, – Stopper

+0

''있어 와우! 고마워요. 나뭇 가지에서 이름을 얻는다. {%} 운동에서 % {{운동. 이름}} 그러나 운동에서 세트를 얻는 방법은 나뭇 가지에서 훈련? – Stopper

+1

'{{운동. exerciseTrainings}}'? – Shady