Doctrine orm 复合键和外键作为主键原则2+zend框架2
我一直在想为什么我的映射和控制器操作不起作用。为此,我需要参考我以前的文章,在那里我描述了我的实体和数据库模式,可以找到它们。我需要开始一个新的帖子,因为没有进一步的更新,我认为这是唯一的方式来获得条令+Zend专业人士的注意 正如我在上一篇文章中所描述的,我有一个Zend表单,用户可以输入teamId和teamName,他还可以从表单上的下拉列表中选择多个球员,并可以将球员分配给团队。所以基本上,这就是我用教义和Zend实现的目标。为此,我编写了上一篇文章中描述的实体,现在我想从控制器中添加代码来持久化实体 控制器:Doctrine orm 复合键和外键作为主键原则2+zend框架2,doctrine-orm,zend-form,zend-framework2,Doctrine Orm,Zend Form,Zend Framework2,我一直在想为什么我的映射和控制器操作不起作用。为此,我需要参考我以前的文章,在那里我描述了我的实体和数据库模式,可以找到它们。我需要开始一个新的帖子,因为没有进一步的更新,我认为这是唯一的方式来获得条令+Zend专业人士的注意 正如我在上一篇文章中所描述的,我有一个Zend表单,用户可以输入teamId和teamName,他还可以从表单上的下拉列表中选择多个球员,并可以将球员分配给团队。所以基本上,这就是我用教义和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
);
}
这就是我在控制器中所做的,将实体保存到两个表TeamTable和teamPlayer表中,因为播放器表已经填充了数据。因此,我想将球员添加到团队中,并在这两个表中分配该值
现在我可以看到我的表单,当我输入数据并按submit时,什么都没有发生,我可以看到表单,而不需要执行任何操作。当数据成功保存到数据库中时,我会将其重新路由到索引页,但这不会发生
如果您能在映射部分或控制器端指出我所犯的错误,我们将不胜感激
官方文件,特别是第2条的官方文件,过于全面,尤其不符合我的要求 让我们尝试通过以下步骤更新此答案来解决此问题: 步骤1: 您的话向我暗示,您可能在验证过程中遇到一些问题,所以让我们检查您是否正在传递此$form->isValid 我还可以建议您使用条令命令行:条令orm:validate schema,此命令将帮助您检查实体映射是否正常,以及数据库映射是否正常,我认为调试doctrine2实体很方便
ps:我还没有深入阅读您的实体谢谢您的回复,但这无助于找到我一直在寻找的确切解决方案
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
}else{
var_dump($form->getMessages());
}