PropertyAccessor 需要一个对象图或数组来操作,但它找到类型 "NULL"
PropertyAccessor requires a graph of objects or arrays to operate on, but it found type "NULL"
我在 AssignmentTypeAdmin 中有这个方法:
protected function configureFormFields(FormMapper $formMapper)
{
$formMapper
->add('code', 'text')
->add('label', 'text', array('label'=>'Libellé'))
->add('assignHierarchyNode.label', 'text', array('label' => 'Noeud hiérarchique'))
->add('assignPortfolioType.portfolioTypeLabel', null, array('label' => 'Type de portefeuille'))
->add('assignGeoHierarchyNodeType.label', null, array('label' => 'Type de noeud hiérarchique'));
}
在分配类型 class 中:
/**
* @ORM\ManyToOne(targetEntity="HierarchyManagerBundle\Entity\HierarchyNode")
* @ORM\JoinColumn(name="assign_hierarchy_node_id", referencedColumnName="id", nullable=FALSE)
*/
private $assignHierarchyNode;
在 HierarchyNode class 中:
...
/**
* @var string
* @Gedmo\TreePathSource
* @ORM\Column(name="label", type="string", length=255)
*/
private $label;
...
还有获取和设置方法。
我的问题是出现此错误,我不知道为什么:
PropertyAccessor 需要一个对象图或数组来操作,但它在尝试遍历 属性 [=32] 处的路径 "assignHierarchyNode.label" 时发现了类型 "NULL" =].
我为此使用 Symfony 3.1、Doctrine 2.5.2、Sonata Bundle。
提前致谢!
看看那里:Sonata PostPersist
在这里你可以找到奏鸣曲构造器,它可能对你有帮助。它可能比使用 _constructor 更好。你可以在下面找到一个例子。
public function postPersist($client)
{
$em = $this->getConfigurationPool()->getContainer()->get('doctrine.orm.entity_manager');
if ($client instanceof Client )
{
$test = new Test();
$test->setClient($client);
$test->setSurname($client->getSurname());
$test->setFirstname($client->getFirstname());
$em->persist($test);
$em->flush();
}
}
希望它有用。如果您有任何问题,请提问。
对我来说,当我将它初始化为 array 或 ArrayCollection.
时它起作用了
public function __construct() {
$this->conditions = [];
}
Symfony 抛出异常,因为如果未初始化,则无法对其进行迭代。
我在 AssignmentTypeAdmin 中有这个方法:
protected function configureFormFields(FormMapper $formMapper)
{
$formMapper
->add('code', 'text')
->add('label', 'text', array('label'=>'Libellé'))
->add('assignHierarchyNode.label', 'text', array('label' => 'Noeud hiérarchique'))
->add('assignPortfolioType.portfolioTypeLabel', null, array('label' => 'Type de portefeuille'))
->add('assignGeoHierarchyNodeType.label', null, array('label' => 'Type de noeud hiérarchique'));
}
在分配类型 class 中:
/**
* @ORM\ManyToOne(targetEntity="HierarchyManagerBundle\Entity\HierarchyNode")
* @ORM\JoinColumn(name="assign_hierarchy_node_id", referencedColumnName="id", nullable=FALSE)
*/
private $assignHierarchyNode;
在 HierarchyNode class 中: ...
/**
* @var string
* @Gedmo\TreePathSource
* @ORM\Column(name="label", type="string", length=255)
*/
private $label;
... 还有获取和设置方法。
我的问题是出现此错误,我不知道为什么:
PropertyAccessor 需要一个对象图或数组来操作,但它在尝试遍历 属性 [=32] 处的路径 "assignHierarchyNode.label" 时发现了类型 "NULL" =].
我为此使用 Symfony 3.1、Doctrine 2.5.2、Sonata Bundle。 提前致谢!
看看那里:Sonata PostPersist
在这里你可以找到奏鸣曲构造器,它可能对你有帮助。它可能比使用 _constructor 更好。你可以在下面找到一个例子。
public function postPersist($client)
{
$em = $this->getConfigurationPool()->getContainer()->get('doctrine.orm.entity_manager');
if ($client instanceof Client )
{
$test = new Test();
$test->setClient($client);
$test->setSurname($client->getSurname());
$test->setFirstname($client->getFirstname());
$em->persist($test);
$em->flush();
}
}
希望它有用。如果您有任何问题,请提问。
对我来说,当我将它初始化为 array 或 ArrayCollection.
时它起作用了public function __construct() {
$this->conditions = [];
}
Symfony 抛出异常,因为如果未初始化,则无法对其进行迭代。