【发布时间】: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;
}
提前感谢大家的帮助!
【问题讨论】:
-
很遗憾这不是解决方案,我在上面的问题中添加了 SQL 查询 + addCategoryProject 方法。有没有发现一些错误?
标签: symfony doctrine-orm doctrine many-to-many