2015-04-22 4 views
1

Я пытаюсь использовать softdelete вариант gedmo/doctrine-extensions, но по какой-то причине, когда я называю romove(), запись в базе данных получает удалена вместо обновления deletedAt поля.Config запись для DoctrineExtensions SoftDeleteable: gedmo/Доктрина-расширений

В here, док говорит нам, чтобы обновить конфигурации с:

$ config-> AddFilter ('мягкой deleteable', 'Gedmo \ SoftDeleteable \ Filter \ SoftDeleteableFilter');

Это лишь один из примеров, которые я пробовал:

# app/config/config.yml 
doctrine: 
    orm: 
     entity_managers: 
      default: 
       filters: 
        softdeleteable: 
         class: Gedmo\SoftDeleteable\Filter\SoftDeleteableFilter 
         enabled: true 

Список литературы (всего лишь несколько из них):

Итак, вопрос простыми словами, как его настроить в config.yml?

КОНТРОЛЛЕР

public function delete($id) 
{ 
    $profile = $this->profileRepository->findOneBy(['id' => $id]); 

    if (!$profile instanceof Profile) { 
     throw new ........ 
    } 

    $this->entityManager->remove($profile); 
    $this->entityManager->flush(); 

    return true; 
} 

СУЩНОСТЬ

use Gedmo\Mapping\Annotation as Gedmo; 

/** 
* @ORM\Entity() 
* @ORM\Table(name="profile") 
* @Gedmo\SoftDeleteable(fieldName="deletedAt") 
*/ 
class Profile 
{ 
    /** 
    * @ORM\Column(name="deletedAt", type="datetime", nullable=true) 
    */ 
    private $deletedAt; 
    ...... 
} 

COMPOSER.JSON

"require": { 
    "symfony/symfony": "2.6.*", 
    "doctrine/orm": "~2.2,>=2.2.3", 
    "doctrine/doctrine-bundle": "~1.2", 
    "gedmo/doctrine-extensions": "2.3.*@dev", 
    ...... 
}, 

config.yml

doctrine: 
    dbal: 
     default_connection: front 
     connections: 
     front: 
      driver: %database_driver% 
      host:  %database_host% 
      ........ 
     back: 
      driver: %database_driver% 
      host:  %database_host% 
      ........ 


    orm: 
     auto_generate_proxy_classes: %kernel.debug% 
     default_entity_manager:  front 

     entity_managers: 
      front: 
       connection:  front 
       mappings: 
        MyWebsiteBundle: 
         dir:  Entity 
        FOSUserBundle: ~ 

      back: 
       connection:  back 

КАРТ INFO:

[email protected]:/var/www/html/local$ php app/console doctrine:mapping:info 
Found 8 mapped entities: 
[OK] My\Bundle\Entity\AbstractMerchantProfile 
[OK] My\Bundle\Entity\AbstractIntegration 
[OK] My\Bundle\Entity\APIConsumer 
[OK] My\Bundle\WebsiteBundle\Entity\User 
[OK] My\Bundle\WebsiteBundle\Entity\Profile 
[OK] My\Bundle\WebsiteBundle\Entity\Integration 
[OK] FOS\UserBundle\Model\Group 
[OK] FOS\UserBundle\Model\User 

ответ

2

Решение:

Включено stof/doctrine-extensions-bundle в composer.json

"stof/doctrine-extensions-bundle": "1.2.*@dev",

Пакет here. Документация: here.

Включить сверток AppKernel: new Stof\DoctrineExtensionsBundle\StofDoctrineExtensionsBundle()

Поскольку у меня есть более чем один менеджеров сущностей в конфигурации.YML я сделал:

stof_doctrine_extensions: 
    orm: 
     em1: 
      softdeleteable: true 


doctrine: 
    dbal: 
     default_connection: em1 
     connections: 
     em1: 
      driver: %database_driver% 
      host:  %database_host% 
      ....... 

     em2: 
      driver: %database_driver% 
      host:  %database_host% 
      ....... 

     em3: 
      driver: %mws_database_driver% 
      host:  %mws_database_host% 
      ....... 

    orm: 
     auto_generate_proxy_classes: %kernel.debug% 
     default_entity_manager:  em1 

     entity_managers: 
      em1: 
       connection:  em1 
       mappings: 
        MyWebsiteBundle: 
         dir:  Entity 
        FOSUserBundle: ~ 
       filters: 
        softdeleteable: 
         class: Gedmo\SoftDeleteable\Filter\SoftDeleteableFilter 
         enabled: true 

      em2: 
       connection:  em2 

      em3: 
       connection:  em3 
0

Это, как я настроил его

doctrine: 
    dbal: 
     driver: "%database_driver%" 
     host:  "%database_host%" 
     port:  "%database_port%" 
     dbname: "%database_name%" 
     user:  "%database_user%" 
     password: "%database_password%" 
     charset: UTF8 

    orm: 
     auto_generate_proxy_classes: "%kernel.debug%" 
     auto_mapping: true 
     filters: 
      softdeleteable: 
       class: Gedmo\SoftDeleteable\Filter\SoftDeleteableFilter 
       enabled: true 
Смежные вопросы