1

私はfindOneBy自分のエンティティで単一の行を(使用して)見つけています。コードは次のとおりです。

$userown = $this->getDoctrine()->getRepository('GameShelfUsersBundle:Own')
    ->findOneBy(array(
        'game' => $game->getId(),
        'user' => $em->getRepository('GameShelfUsersBundle:User')->find($session->getId())
    ));

今、私はそれをとしてテンプレートに渡しますuserown。しかし、を使用して小枝で印刷しようとすると{{ userown.typo }}、エラーがスローされます。

An exception has been thrown during the rendering of a template ("Catchable Fatal Error: Object of class Proxies\__CG__\GameShelf\UsersBundle\Entity\OwnState could not be converted to string in D:\!!XAMPP\htdocs\

私のエンティティはここにあります。

4

2 に答える 2

5

Doctrineは外部キーを自動的に解決するので$typo、文字列ではなくオブジェクトです。エラーメッセージに示されているように、このオブジェクトは文字列に変換できないため、印刷に失敗します。

__toString()エンティティ内にメソッドを実装するかOwnState(文字列を返す必要があります)、OwnStateオブジェクトの実際のプロパティを出力できます{{ userown.type.someProperty }}

于 2013-01-23T12:32:23.293 に答える
1

これが正しいと思いますか

'game' => $game->getId()

IDではなくゲームオブジェクトそのものである必要があると思います

'game' => $game,

于 2013-01-24T02:19:14.703 に答える