删除另一个实体Symfony内部的实体



我有2个实体:用户和爱。这是一个"一对多的,双向的"。

这是我的实体:

用户:

namespace SEUserBundleEntity;
/**
 * User
 *
 * @ORMTable(name="user")
 * @ORMEntity(repositoryClass="SEUserBundleRepositoryUserRepository")
 */
class User extends BaseUser
{
    //...
    /**
     * One User has Many Loves.
     * @ORMOneToMany(targetEntity="SECoreBundleEntityLove", mappedBy="user", cascade={"persist"})
     */
    private $loves;
    //...
    public function __construct()
    {
        //...
        $this->loves = new ArrayCollection();
        //...
    }
    //...
    /**
     * Remove love
     *
     * @param SECoreBundleEntityLove $love
     */
    public function removeLove(SECoreBundleEntityLove $love)
    {
        $this->loves->removeElement($love);
        //delete love
    }
    //...
}

爱:

namespace SECoreBundleEntity;
/**
 * Love
 *
 * @ORMTable(name="love")
 * @ORMEntity(repositoryClass="SECoreBundleRepositoryLoveRepository")
 */
class Love
{
    //...
    /**
     * Many Loves have One User.
     * @ORMManyToOne(targetEntity="SEUserBundleEntityUser", inversedBy="loves", cascade={"persist"})
     * @ORMJoinColumn(name="user_id", referencedColumnName="id")
     */
    private $user;
    //...
     /**
     * Set user
     *
     * @param SEUserBundleEntityUser $user
     *
     * @return Love
     */
    public function setUser(SEUserBundleEntityUser $user = null)
    {
        $this->user = $user;
        return $this;
    }
    //...
}

我的问题是:有什么方法,当我对用户执行removeLove()时,我的数据库中相应的爱实体自动删除而无需在控制器中使用实体管理器。我希望我的控制器看起来像:

class DefaultController extends Controller
{
    public function indexAction()
    {
        //...
        $em = $this->getDoctrine()->getManager();
        $user->removeLove($love);
        $em->persist($user);
        $em->flush();
        //...
    }
}

的结果是,$love不会在$usergetLoves()中删除数据库的CC_3。

您可以尝试:孤儿删除选项

确保实体Love与另一个User没有关联。因此,一个实体Love总是与一个User

相关联

相关内容

  • 没有找到相关文章

最新更新