マッピングとコントローラー アクションが機能しない理由を知りたいと思っています。これについては、エンティティとデータベース スキーマについて説明した以前の投稿を参照する必要があります。これ以上の更新がなかったため、新しい投稿を開始する必要があり、Doctrine + Zend Pros の注目を集めるにはこれが唯一の方法だと思いました。
以前の投稿で説明したように、Zend フォームがあり、ユーザーは teamId と teamName を入力できます。さらに、フォームのドロップダウン リストから複数のプレーヤーを選択して、プレーヤーをチームに割り当てることができます。つまり、基本的にそれが Doctrine と Zend で達成する私の目標です。そのために、以前の投稿で説明したエンティティを作成しました。今は、コントローラーからコードを追加して、エンティティを永続化したいと考えています。
コントローラ:
public function addAction()
{
$form = new TeamForm($this->getEntityManager());
$form->get('submit')->setAttribute('value', 'Add');
$request = $this->getRequest();
if ($request->isPost())
{
$team = new Team();
$player = new Player();
$teamPlayers = new TeamPlayer();
$form->setInputFilter($typeset->getInputFilter());
$form->setData($request->getPost());
if ($form->isValid())
{
$team->populate($form->getData());
$teamPlayers->setPlayer($player);
$teamPlayers->setTeam($team);
$this->getEntityManager()->persist($teamPlayers);
$this->getEntityManager()->flush();
//Reroute to the index page once the data is successfully added
}
}
//return form array
return array(
'form' => $form
);
}
これは基本的に、エンティティを 2 つのテーブル (team テーブルと teamPlayer テーブル) に保存するためにコントローラーで行っていることです。既にプレーヤー テーブルにはデータが入力されています。そこで、プレーヤーをチームに追加し、その値をこれら 2 つのテーブルに割り当てたいと思います。
今、私は自分のフォームを見ることができ、データを入力して送信を押しても何も起こらず、アクションなしでフォームを見ることができます。データがデータベースに正常に保存されたら、発生していないインデックス ページに再ルーティングします。
マッピングセクションまたはコントローラー側でエラーが発生していることを指摘していただければ幸いです。
特にDoctrine 2の公式ドキュメントはグローバルすぎて、私の要件に対して特に明確ではありません.