SF2 - Sonata:如何从实体中的parameter.yml获取参数

时间:2014-10-17 13:53:16

标签: symfony sonata-admin

我使用了奏鸣曲管理包。 我如何让实体参与parameters.yml? 直接或通过服务....

我必须在Postremove做一些整理工作,我需要在这里披露路径,访问数据等等。 这个我不会写给难的Entitiy,但是参数.yml选择。

蒂莫

1 个答案:

答案 0 :(得分:1)

Entity类不是放置业务逻辑的地方。据我所知,您无法将entity定义为服务。

您应该通过创建Event listener来解决您想要做的事情,您可以将其定义为服务并从parameters.yml传递值。该听众应该听取您的postRemove事件。

您的services.yml

services:
    service_name:
        class: Acme\Your\ListenerClass
        arguments: [%your_parameter_from_yml%]
        tags:
            - { name: doctrine.event_listener, event: postRemove }

你的ListenerClass:

class ListenerClass
{

public function __construct($your_param_from_parameters)
{
    $this->param = $your_param_from_parameters
}

/**
 * @param LifecycleEventArgs $args
 */
public function postRemove(LifecycleEventArgs $args)
{
    $entity = $args->getEntity();

    if ($entity instanceof YourEntity) {
        //DO THE MAGIC!!
    }
}
}