小编Art*_*nka的帖子

在多对多关系中应用doctrine sql过滤器

我的项目中有很多关系(user_role,grade,user_role_grades).但我还要求不要从我的数据库中删除任何数据.所以,我在表中添加了一个状态列,连接2个表以创建多对多的关系.现在我想要

 $userRole->getGrades() 
Run Code Online (Sandbox Code Playgroud)

只获取那些记录,在unite table(user_role_grades)中没有状态"0".对于那些,我试图使用doctrine sql过滤器.

namespace Bis\MpBundle\Filter;
use \Doctrine\ORM\Mapping\ClassMetaData;

class UserRoleGradeFilter extends \Doctrine\ORM\Query\Filter\SQLFilter
{
    public function addFilterConstraint(ClassMetadata $targetEntity, $targetTableAlias)
    {
        if("Bis\DefaultBundle\Entity\UserRoleGrade" == $targetEntity->name){

            return $targetTableAlias . '.status != 0';
        }

        return '';
    }
}
Run Code Online (Sandbox Code Playgroud)

因此,它被称为Bis\DefaultBundle\Entity\UserRole,但不适用于Bis\DefaultBundle\Entity\UserRoleGrade实体.有什么想法吗?

或者你可能有其他想法,我怎么能这样做?

php doctrine-orm

5
推荐指数
1
解决办法
996
查看次数

防止在doctrine 2监听器中删除实体

除了被删除之外,我需要让实体更改状态.对于那些我为flush方法添加了一个监听器.所以,我可以看到被删除的所有实体,但不能阻止它们被删除.可能吗?

php doctrine-orm

1
推荐指数
1
解决办法
1535
查看次数

标签 统计

doctrine-orm ×2

php ×2