Мой босс установил этот пакет для фильтра softdelete, но документация чрезвычайно скудна. . Как мне использовать это в моих запросах на удаление?
StofDoctrineExtensionsBundle softdelete — как его использовать?
comment
Документация не более чем скудная. StofDoctrineExtensionsBundle — это только интеграция расширений Doctrine для Symfony. Поэтому поищите там документацию по программному удалению.
- person Emii Khaos   schedule 21.05.2013
Ответы (2)
Включите его в своей конфигурации:
stof_doctrine_extensions:
orm:
default:
...
softdeleteable: true
doctrine:
...
orm:
filters:
softdeleteable:
class: Gedmo\SoftDeleteable\Filter\SoftDeleteableFilter
enabled: true
Затем в вашей сущности:
<?php
namespace Foo\BarBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
use Gedmo\Mapping\Annotation as Gedmo;
/**
* ...
* @Gedmo\SoftDeleteable(fieldName="deletedAt")
* @ORM\Entity
*/
class Foo
{
/**
* @var \DateTime $deletedAt
*
* @ORM\Column(name="deleted_at", type="datetime", nullable=true)
*/
private $deletedAt;
Затем просто удалите сущности, как обычно (об остальном позаботится расширение):
$em = $this->getDoctrine()->getManager();
$em->remove($entity);
$em->flush();
person
Thomas K
schedule
21.05.2013
Большое спасибо. Они не поместили эти инструкции в документы!
- person Joe Yahchouchi; 30.01.2016
У меня есть связанный с этим вопрос: как только вы
remove
сущность, она получает метку времени deletedAt
и не отображается в обычном запросе find
, и это нормально. Но что, если я хочу получить доступ к удаленной отметке времени для какого-либо другого использования? Является ли отключение фильтра вручную, получение данных и его повторное включение единственным вариантом? Кажется немного грязным и, возможно, небезопасным.
- person aalaap; 21.10.2016
Мне также понадобилась еще одна часть головоломки: конфигурация доктрины yaml:
XYBundle\Entity\Adresse:
type: entity
table: adresse
gedmo:
soft_deleteable:
field_name: deleted_at
time_aware: false
id:
id:
type: integer
generator: { strategy: AUTO }
fields:
ort:
type: string
length: 100
plz:
type: string
columnDefinition: varchar(255) NOT NULL DEFAULT ''
deleted_at:
type: datetime
nullable: true
person
Benjamin
schedule
15.11.2016