Php Sonata Admin中的查询太多

Php Sonata Admin中的查询太多,php,symfony,doctrine,sonata,doctrine-extensions,Php,Symfony,Doctrine,Sonata,Doctrine Extensions,我有两门课: class Employee { use Knp\DoctrineBehaviors\Model\Translatable\Translatable; //... /** * @ORM\ManyToOne(targetEntity="Employee", inversedBy="employeeSubs") * @ORM\JoinColumn(name="employee_id", referencedColumnName="id",

我有两门课:

class Employee
{
    use Knp\DoctrineBehaviors\Model\Translatable\Translatable;
    //...

    /**
     * @ORM\ManyToOne(targetEntity="Employee", inversedBy="employeeSubs")
     * @ORM\JoinColumn(name="employee_id", referencedColumnName="id", onDelete="CASCADE")
     **/
    protected $employeeMain;

    /**
     * @ORM\OneToMany(targetEntity="Employee", mappedBy="employeeMain")
     */
    protected $employeeSubs;
    //...
}

class Room
{
    use Knp\DoctrineBehaviors\Model\Translatable\Translatable;

    //...

    /**
    * @var \Doctrine\Common\Collections\ArrayCollection
    *
    * @ORM\ManyToMany(targetEntity="Employee", inversedBy="rooms")
    * @ORM\JoinTable(name="room_employee",
    *   joinColumns={
    *     @ORM\JoinColumn(name="room_id", referencedColumnName="id")
    *   },
    *   inverseJoinColumns={
    *     @ORM\JoinColumn(name="employee_id", referencedColumnName="id")
    *   }
    * )
    */
    protected $employees; 

    //room...
}
这两个类都使用来自Knp\DoctrineBehaviors的翻译,因此我在Sonata Admin(RoomAdmin)中遇到了太多查询的问题

如果我在员工中有关系“一家公司”而没有关系“一家公司”,那么我可以在管理类中:

public function createQuery($context = 'list')
    {
        $query = parent::createQuery($context);

        $query
            ->addSelect('translations, employeeTranslations')
            ->leftJoin($query->getRootAlias().'.translations', 'translations')
        ->leftJoin($query->getRootAlias().'.employees', 'Employee')
        ->leftJoin('Employee.translations', 'employeeTranslations');
        return $query;
    }
然后,查询的数量就减少了,一切都很好


对于许多人(房间)和一个办公室(员工),这不起作用

我在您的实体中看不到OneTONE关系,请更新发布的代码以查看所有这些详细信息。另一方面,“这不工作。”是多余的,请显示错误或解释发生了什么。对不起,我更新了我的问题。