0

レンダー コントローラー メソッドによって呼び出されるコントローラーからオブジェクトを取得する際に問題があります。

これは、自己 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" }

私を助けてください。

4

2 に答える 2

0

ありがとうチーズマックフライ

確かに、それは @ParamConverter で動作します

しかし、OneToOne関係を削除すると@ParamConverterなしで機能するので、それは奇妙です

于 2013-06-19T07:38:54.517 に答える