[英]Symfony2 Array Collection returns nothing
每當我嘗試使用其ID將所有用戶都放在特定教室內時,它什么也不會返回。 我與user_id和class_id有聯系
Classroom.orm.yml
id:
classID:
column: class_id
type: integer
generator: { strategy: AUTO }
fields:
manyToMany: // <---- this is the map
classUsers:
targetEntity: acme\UserBundle\Entity\User
mappedBy: userClassrooms
oneToMany:
classAnnouncement:
targetEntity: acme\ClassroomBundle\Entity\Announcements
mappedBy: announcementClass
manyToMany:
classLesson:
targetEntity: acme\ClassroomBundle\Entity\Lessons
inversedBy: lessonClass
joinTable:
name: classroom_lessons
joinColumns:
fk_class_id:
referencedColumnName: class_id
inverseJoinColumns:
fk_lesson_id:
referencedColumnName: lesson_id
User.orm.yml
acme\UserBundle\Entity\User:
type: entity
table: reg_user
id:
userID:
column: user_id
type: integer
generator: { strategy: AUTO }
fields:
...
manyToMany: //this is the map
userClassrooms:
targetEntity: acme\ClassroomBundle\Entity\Classroom
inversedBy: classUsers
joinTable:
name: classroom_users
joinColumns:
fk_user_id:
referencedColumnName: user_id
inverseJoinColumns:
fk_class_id:
referencedColumnName: class_id
Classroom.php
...
public function __construct()
{
$this->classUsers = new ArrayCollection();
//other array collections
$this->classAnnouncement = new ArrayCollection();
$this->classLesson = new ArrayCollection();
}
public function addClassUser(\acme\UserBundle\Entity\User $classUsers)
{
$this->classUsers[] = $classUsers;
return $this;
}
public function removeClassUser(\acme\UserBundle\Entity\User $classUsers)
{
$this->classUsers->removeElement($classUsers);
}
public function getClassUsers()
{
return $this->classUsers;
}
Controller
public function StudentClassroomAction($classID)
{
$class_repository = $this->getDoctrine()->getRepository('acmeClassroomBundle:Classroom');
$classroom = $class_repository->find($classID); //im sure this stores an object of classroom
$userinfo = $classroom->getClassUsers(); //THIS IS THE THING!!!
//first i tried rendering it in twig. still gives me nothing
/*return $this->render('acmeClassroomBundle:Classrooms:Student.html.twig',array(
'classroom' => $classroom,
'classuser' => $userinfo));
*/
//I change it to response to know if something is stored in $userinfo it returns an empty page rather than an error.Then $userinfo still has no object stored.
return new response($userinfo);
}
tbl: classroom_users
______________________________
| fk_user_id | fk_class_id|
-------------------------------
| 1 | 1 |
| 2 | 1 |
-------------------------------
誰能告訴我,怎么了? 我真的無法確定現在是哪一個,因為它不會向我返回任何錯誤。
這聽起來會很愚蠢,但是Yaml映射格式不正確,這就是為什么無法讀取映射的原因。
將教室.orm.yml修復為
Classroom.orm.yml
manyToOne:
classCreatedBy:
targetEntity: acme\UserBundle\Entity\User
joinColumn:
name: fk_created_by
nullable: false
referencedColumnName: user_id
oneToMany:
classAnnouncement:
targetEntity: acme\ClassroomBundle\Entity\Announcements
mappedBy: announcementClass
manyToMany: //changed this one
classUsers:
targetEntity: acme\UserBundle\Entity\User
mappedBy: userClassrooms
classLesson:
targetEntity: acme\ClassroomBundle\Entity\Lessons
inversedBy: lessonClass
joinTable:
name: classroom_lessons
joinColumns:
fk_class_id:
referencedColumnName: class_id
inverseJoinColumns:
fk_lesson_id:
referencedColumnName: lesson_id
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.