0

games2つのテーブル(と)を結合したいownership。そこから、ユーザーが所有権で彼に割り当てたゲームを印刷したいと思います。例:ユーザー(id:2)には2つのゲーム(id:1とid:2)があります。この2つだけを印刷したい。

私のコントローラーは次のとおりです。

function getGameAction($id) {
    $game = $this->getDoctrine()
      ->getRepository('GameShelfGamesBundle:Game')
      ->find($id);

    return new Response($game->getOwnership()->getName());
}

エンティティ:所有権ゲーム

今のところ、エラーが発生するだけです。

致命的なエラー:50行目のD:!! XAMPP \ htdocs \ Symfony \ src \ GameShelf \ GamesBundle \ Controller\DefaultController.phpの未定義のメソッドProxies__CG__\ GameShelf \ UsersBundle \ Entity \ Ownership :: getName()を呼び出す

4

2 に答える 2

0

Ownership-Entityに「name」という名前の変数を追加するのを忘れただけです。したがって、ゲッターとセッターが自動的に生成されることはありません。コードの先頭にすべての変数を配置してみてください。@Cyprianはそのために関係を監視していました。

エラーメッセージを見るだけで、エラーの原因がすぐにわかります。

于 2013-01-02T19:39:10.107 に答える
0

エラー メッセージを見てください。getOwnership メソッドも、所有権テーブルとの関係もありません。

まず、ゲーム エンティティで所有権との関係を宣言する必要があります。

/*
 * @ORM\ManyToOne(targetEntity="Namespace\To\Ownership", inversedBy="games")
 * @ORM\JoinColumn(name="ownership_id", referencedColumnName="id")
 */
private $ownership;

そして、あなたの Ownership エンティティで:

/**
 * @ORM\OneToMany(targetEntity="Namespace\To\Game", mappedBy="ownership")
 */
private $games;

次に、コンソール コマンドを実行してセッターとゲッターを生成すると、すべてがうまくいくはずです。

于 2013-01-02T15:37:51.697 に答える