doushen8391 2016-02-19 12:51
浏览 26
已采纳

Symfony形式POST处理

How does Symfony handle POST method towards controllers? For example, this code in ASP.NET makes it possible to use an exact similar name for a controller, in a different manner:

public ActionResult Create()
{
    return View();
}

 // POST: Objects/Create
 [HttpPost]
 [ValidateAntiForgeryToken]
 public ActionResult Create()
 {
     //Code here that only runs on POST method of a form
     return View();
 }

I have seen something like:

public function createAction()
{
    return $this->render('formPage.html.twig');
}

/**
* @Method({"POST"})
*/
public function createAction()
{
    //Some code...

    return new Response('Added item with id: ' . $item->getId() . 'to database');
}

Is the latter possible and similar to the former? Is it necessary to use such annotation like this or can it also be added to routing and if so, should I make different routing names or something?

movie_create:
    path:     /movies/create
    defaults: { _controller: AppBundle:Movie:create }
  • 写回答

2条回答 默认 最新

  • dongtu7205 2016-02-19 13:00
    关注

    Controllers in Symfony2 are classes, in which you cannot re-defined methods with the same name.

    I'm afraid you'll need to either split your controller into two:

    class ViewController extends Controller {
    
        public function createAction()
        {
            return $this->render('formPage.html.twig');
        }
    }
    
    class CreateController extends Controller {
    
        /**
        * @Method({"POST"})
        */
        public function createAction()
        {
            //Some code...
    
            return new Response('Added item with id: ' . $item->getId() . 'to database');
        }
    }
    

    Or a much simpler solution, simply re-name your methods in your routing:

    movie_view:
        path:     /movies/view
        defaults: { _controller: AppBundle:Movie:view }
    movie_create:
        path:     /movies/create
        defaults: { _controller: AppBundle:Movie:create }
        requirements:
            _method: POST
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么