使用symfony3预期值进行注释错误,得到“POST”

时间:2017-06-09 11:13:49

标签: php forms symfony

我有Symfony应用程序,我尝试提交一个简单的表单到动作功能......显然我的注释是错误的,但我不知道如何解决它们。这是完整的错误

  

[语法错误]预期值,在方法中的第58位获得“POST”   AppBundle \ Controller \ ProjectController :: showAction()in   C:\ xampp \ htdocs \ TaskManager \ src \ AppBundle / Controller /(即   从...进口   “C:\ XAMPP \ htdocs中\任务管理\应用/配置\ routing.yml中”。)

以下是我尝试在show.html.twig

中提交的表单
<form method="post">
    <input type="submit" name="approve" value="Approve">
    <input type="submit" name="reject" value="Reject">
</form>

背后的原因是我有一种类型的用户可以批准或拒绝项目。此用户不应仅仅为了更改这两个字段而编辑页面。相反,它应该单击两个按钮,值应该更改,而他不做任何其他事情。我的想法是将此代码放在showAction() -

if (isset($_POST['approve'])) {
    $project->setApproved(true);
    $project->setRejected(false);
}
elseif (isset($_POST['rejected'])) {
    $project->setRejected(true);
    $project->setApproved(false);
}

在我更改这些值之后,我打算将它们刷新,这样当项目再次显示时,它将被批准或拒绝。这里的关键是不应该有字段。当我想要展示一个项目时,我已经拥有了冲洗它所需的一切。以下是我对showAction() -

的注释
/**
 * Finds and displays a project entity.
 *
 * @Route("/{id}", name="project_show")
 * @Method("GET","POST")
 */

仅供比较,我在editAction()中的注释工作正常

/**
 * Displays a form to edit an existing project entity.
 *
 * @Route("/{id}/edit", name="project_edit")
 * @Method({"GET", "POST"})
 */

我需要在showAction()

中提交这一个简单表单

1 个答案:

答案 0 :(得分:4)

您似乎在{}注释

中缺少大括号(@Method

尝试改变这一点:

* @Method("GET","POST")

对此:

* @Method({"GET","POST"})