【问题标题】:Symfony Doctrine Many2Many relationship works only one waySymfony Doctrine Many2Many 关系只有一种方式起作用
【发布时间】:2014-03-10 08:49:23
【问题描述】:

我正在使用 Symfony2 开发一个项目管理系统。我有一个项目可以有一个或多个类别(many2many 关系)。使用 symfony 生成两个实体、表单和控制器后,我可以创建一个新类别并为其分配一些项目(categoryproject/1/edit)但我不能做相反的事情,这意味着我不能为项目分配类别在我的项目编辑表单中(每次我选择一些类别并按更新时,选择的字段再次变白)。这怎么可能?这是我的代码:

项目实体:Dbe\DDBundle\Entity\Project:

manyToMany:
categoryProject:
  targetEntity: Dbe\DDBundle\Entity\CategoryProject
  mappedBy: project

类项目学说:

  manyToMany:
project:
  targetEntity: Dbe\DDBundle\Entity\Project
  inversedBy: categoryProject
  joinTable:
    name: ProjectToCategoryProject
    joinColumns:
      category_project_id:
        referencedColumnName: id
        nullable: false
    inverseJoinColumns:
      project_id:
        referencedColumnName: id
        nullable: false

这是我从 Symfony 工具栏中得到的查询:为什么会有问号?

    SELECT 
  t0.id AS id1, 
  t0.name AS name2, 
  t0.description AS description3 
FROM 
  CategoryProject t0 
  INNER JOIN ProjectToCategoryProject ON t0.id = ProjectToCategoryProject.category_project_id 
WHERE 
  ProjectToCategoryProject.project_id = ?

这里是添加功能:

    /**
 * Add categoryProject
 *
 * @param \Dbe\DDBundle\Entity\CategoryProject $categoryProject
 * @return Project
 */
public function addCategoryProject(\Dbe\DDBundle\Entity\CategoryProject $categoryProject)
{


    $categoryProject->addCategory($this);
    $this->categoryProjects[] = $categoryProject;

   // $this->categoryProject[] = $categoryProject;

    return $this;
}

提前感谢大家的帮助!

【问题讨论】:

标签: symfony doctrine-orm doctrine many-to-many


【解决方案1】:

这是解决方案,我在推理中犯了一些错误:-)

    $entity = $em->getRepository('DbeddddBundle:Project')->findOneById($id);
    $comment = $em -> getRepository('DbeDddddBundle:Comment') -> findByProject($entity);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-08-15
    • 1970-01-01
    • 1970-01-01
    • 2022-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多