我在从渲染控制器方法调用的控制器中获取对象时遇到问题。
这是我的具有自我 OneToOne 关系的实体:
class Family
{
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @ORM\OneToOne(targetEntity="Family")
* @ORM\JoinColumn(name="brother_id", referencedColumnName="id")
**/
private $brother;
/**
* @ORM\Column(type="string", length=100)
*/
private $label;
}
这是我的行动:
/**
* @Template()
*/
public function testAction()
{
$em = $this->getDoctrine()->getManager();
$brothers = $em->getRepository('FifaAdminBundle:Family')->findAll();
return array(
'brothers' => $brothers,
);
}
我的观点
{% for brother in brothers %}
{{ brother.id }} - {{ brother.label }}
<hr />
{% render controller('AdminBundle:Test:show', {'brother': brother}) %}
<hr />
{{ render(controller('AdminBundle:Test:show', { 'brother': brother })) }}
<hr />
{% endfor %}
我的另一个控制器
public function showAction($brother)
{
if (is_object($brother))
{
return new \Symfony\Component\HttpFoundation\Response('OK');
}
else
{
var_dump($brother);
return new \Symfony\Component\HttpFoundation\Response('KO');
}
}
第一个要素是好的。但是如果它有一个brother_id,这个兄弟就不会被showAction 加载。
它给了我这个:
array(1) { ["__isInitialized__"]=> string(1) "1" }
请帮我。