symfony - Config entries for DoctrineExtensions SoftDeleteable: gedmo/doctrine-extensions -
i'm trying use softdelete
option of gedmo/doctrine-extensions reason when call romove()
, record in database gets removed instead of updating deletedat
field.
in here, doc tells update config with:
$config->addfilter('soft-deleteable', 'gedmo\softdeleteable\filter\softdeleteablefilter');
this 1 of examples tried:
# app/config/config.yml doctrine: orm: entity_managers: default: filters: softdeleteable: class: gedmo\softdeleteable\filter\softdeleteablefilter enabled: true
references (just few of them):
- doctrineextensions softdeleteable
- http://knplabs.com/en/blog/gedmo-doctrine-extensions-on-symfony2
- can't enable softdeleteable in symfony2 - unrecognized options "filters"
so question in simple terms, how configure in config.yml?
controller
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; }
entity
use gedmo\mapping\annotation 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:
mapping info:
inanzzz@inanzzz:/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
solution:
included stof/doctrine-extensions-bundle
in composer.json
"stof/doctrine-extensions-bundle": "1.2.*@dev",
package here. documentation here.
enable bundle in appkernel: new stof\doctrineextensionsbundle\stofdoctrineextensionsbundle()
since have more 1 entity managers in config.yml did:
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
Comments
Post a Comment