shu*_*van 2 php symfony doctrine-orm
我有实体并且我使用
* @Gedmo\SoftDeleteable(fieldName="deletedAt")
Run Code Online (Sandbox Code Playgroud)
当我删除数据库中的某些实体时,我的实体和字段已删除。我有时间删除实体,这是可以的。但现在我需要找到所有deleteAt实体?我创建QB
$qb = $this->getEntityManager()->createQueryBuilder('d');
$qb
->select('d')
->from('ArtelProfileBundle:Project', 'd')
->where('d.deletedAt IS NOT NULL');
$count = $qb->getQuery()->getResult();
$query = $qb->getQuery();
$results = $query->getResult();
return [$results, $count];
Run Code Online (Sandbox Code Playgroud)
我有 0 个实体,为什么以及如何找到实体?
更新 在我的控制器中
class ProjectController extends FOSRestController
{
public function getProjectsAction(ParamFetcher $paramFetcher)
{
$manager = $this->getDoctrine()->getManager();
if($paramFetcher->get('status'))
{
$manager->getFilters()->disable('soft-deleteable');
$queryBuilder = $manager->getRepository('ArtelProfileBundle:Project')->findForStatusProject($paramFetcher, $this->getUser());
}
Run Code Online (Sandbox Code Playgroud)
我有错误
Filter 'soft-deleteable' is not enabled.
Run Code Online (Sandbox Code Playgroud)
我的实体
/**
* Project
*
* @ORM\Table(name="project")
* @Gedmo\SoftDeleteable(fieldName="deletedAt")
* @ORM\Entity(repositoryClass="Artel\ProfileBundle\Entity\Repository\ProjectRepository")
* @ExclusionPolicy("all")
*/
class Project
{
/////
/**
* @var \DateTime $deletedAt
*
* @ORM\Column(name="deleted_at", type="datetime", nullable=true)
* @Type("DateTime")
* @Expose()
*/
protected $deletedAt;
Run Code Online (Sandbox Code Playgroud)
请帮助
解决了,这只是我在配置中使用的名称与代码中使用的名称不匹配
filters:
softdeleteable:
class: Gedmo\SoftDeleteable\Filter\SoftDeleteableFilter
enabled: true
stof_doctrine_extensions:
default_locale: "%locale%"
orm:
default:
timestampable: true
sluggable: true
softdeleteable: true
Run Code Online (Sandbox Code Playgroud)
然后我用我的行动
$manager->getFilters()->disable('softdeleteable');
Run Code Online (Sandbox Code Playgroud)
并拥有我删除的实体
归档时间: |
|
查看次数: |
4229 次 |
最近记录: |