レンダー コントローラー メソッドによって呼び出されるコントローラーからオブジェクトを取得する際に問題があります。
これは、自己 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" }
私を助けてください。