Search code examples
phpsymfonydoctrine-ormdql

Access to many-to-many relation in array format, symfony2


in symfony we can access many-to-many relations with getter functions which return objects of ArrayCollection type. for example for getting Alex's students we can call $alex->getStudens(), then i have access to ale's studens object.

now my question is how i can access alex's students id's in array, for example by calling $alex->getStudentsIds() it returns {1,5,7,12,..} , which are his students's ids.


Solution

  • precisely how you wrote it, you add another function in the entity

    public function getStudentsIds()
    {
       $students = $this->students;
       $studentIds = [];
    
       foreach($students as $student)
       {
         $studentIds[] = $student->getId();
       }  
    
       return $studentIds;
    }
    

    Ideal solution would be to add such a method to a repository and have it query only for student ids for given object but this is the simpliest solution possible.