Php Symfony:EntityManagerCorator的访问属性
我需要装饰一个Symfony EntityManager并访问我从外部注入的属性,但它总是说这是未定义的属性 这是配置:Php Symfony:EntityManagerCorator的访问属性,php,symfony,dependency-injection,decorator,symfony4,Php,Symfony,Dependency Injection,Decorator,Symfony4,我需要装饰一个Symfony EntityManager并访问我从外部注入的属性,但它总是说这是未定义的属性 这是配置: app.decorated.doctrine.orm.default_entity_manager: class: App\Decorator\EntityManager public: false decorates: "doctrine.orm.default_entity_manager" arguments: -
app.decorated.doctrine.orm.default_entity_manager:
class: App\Decorator\EntityManager
public: false
decorates: "doctrine.orm.default_entity_manager"
arguments:
- "@app.decorated.doctrine.orm.default_entity_manager.inner"
- '%photo_directory_absolute%'
例如,Im传递值“%photo\u directory\u absolute%”
这是decorator的一部分:
namespace App\Decorator;
class EntityManager extends EntityManagerDecorator
{
public $photoDir;
public function __construct(EntityManagerInterface $wrapped, string $photoDir)
{
parent::__construct($wrapped);
$this->photoDir = $photoDir;
}
然后我想从水合器得到这个“photoDir”值
namespace App\Hydrator;
class UserAppHydrator extends ObjectHydrator
{
protected function hydrateRowData(array $data, array &$result)
{
$hydrated_result = array();
parent::hydrateRowData($data, $hydrated_result);
die(var_dump($this->_em->photoDir));
这显示了一个错误:
"Notice: Undefined property: Doctrine\\ORM\\EntityManager::$photoDir"
我错过了什么?谢谢看来你的装饰师没有注册我想这是因为如果我写的是die(var_dump($photoDir));在EntityManagerDecorator的构造函数中,它使用正确的值激发。但是错误引用的是EntityManager类,而不是您的装饰器类。