Php 原则ODM:使用多对多删除父对象中的引用
因此,我有以下文件:Php 原则ODM:使用多对多删除父对象中的引用,php,mongodb,symfony,doctrine-orm,doctrine-odm,Php,Mongodb,Symfony,Doctrine Orm,Doctrine Odm,因此,我有以下文件: /* * @ODM\Document(collection="role", repositoryClass="AppBundle\Document\Repository\RoleRepository") */ class Role implements RoleInterface { /** * @var integer $id * * @ODM\Id(strategy="INCREMENT") */ privat
/*
* @ODM\Document(collection="role", repositoryClass="AppBundle\Document\Repository\RoleRepository")
*/
class Role implements RoleInterface
{
/**
* @var integer $id
*
* @ODM\Id(strategy="INCREMENT")
*/
private $id;
/**
* @var string $name
*
* @ODM\Field(type="string")
*/
private $name;
/**
* @var ArrayCollection $users
*
* @ODM\ReferenceMany(targetDocument="User", mappedBy="roles", cascade={"all"})
*
* @JMS\Accessor(getter="getUsersToJson")
* @JMS\Expose
* @JMS\Type("array<integer>")
*/
private $users;
及
因此,当我执行更新角色的修补程序请求时,我希望设置更新角色拥有的用户列表。我发现它完全发生了,但是当我转到数据库时,我没有看到添加到角色的用户列表中的用户中的角色,或者我确实看到了从角色的用户列表中删除的角色。
那么,这是一种正常的行为,我必须自己删除这些引用,还是我做错了什么
更新:
总是需要写问题来理解我到底想要什么
对于编辑,我使用symfony表单
主要的问题是:我们能用关系倒转的东西来引用吗?
我希望有机会编辑用户和编辑角色,他们可以删除或添加彼此不使用的ID。目前不可以。一个模型必须拥有一方或另一方的关系 如果用户模型拥有与角色的关系,则可以在编辑时为用户设置角色。角色模型上的users属性可以是反向引用,以显示分配了角色的用户,但您必须使用owning引用修改模型,以便向角色添加更多用户
/**
* @ODM\Document(collection="user", repositoryClass="AppBundle\Document\Repository\UserRepository")
*/
class User implements AdvancedUserInterface
{
/**
* @var integer $id
*
* @ODM\Id(strategy="INCREMENT")
* @ODM\Index(unique=true)
*
* @JMS\Expose
* @JMS\Type("integer")
*/
private $id;
/**
* @var ArrayCollection $roles
*
* @ODM\ReferenceMany(targetDocument="Role", inversedBy="users", cascade={"persist", "refresh"})
*
* @JMS\Expose
* @JMS\Type("ArrayCollection<AppBundle\Document\Role>")
*/
private $roles;