【问题标题】:Annotations error using symfony3 Expected Value, got "POST"使用 symfony3 预期值的注释错误,得到“POST”
【发布时间】:2017-06-09 11:13:48
【问题描述】:

我有 Symfony 应用程序,我尝试提交一个简单的表单到操作函数……显然我的注释是错误的,但我不知道如何修复它们。这是完整的错误

[语法错误] 期望值,在方法中的位置 58 处获得 'POST' AppBundle\Controller\ProjectController::showAction() 在 C:\xampp\htdocs\TaskManager\src\AppBundle/Controller/(即 进口自 "C:\xampp\htdocs\TaskManager\app/config\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() 中提交这个简单的表格?

【问题讨论】:

    标签: php forms symfony


    【解决方案1】:

    看起来您在 @Method 注释中缺少大括号 ({})

    尝试改变这一点:

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

    到这里:

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

    【讨论】:

      猜你喜欢
      • 2020-09-17
      • 2020-02-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-01
      • 2021-12-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多