Symfony - 找不到表单请求的 url

2022-01-05 00:00:00 request post php symfony-forms symfony-1.4

我正在做一个 symfony 项目.我正在与一个不会重定向到自己页面的表单作斗争.action 属性设置为",方法设置为 post.在这种情况下,它应该调用相同的页面,但我以 404 页面结束.

Im working on a symfony project. Im battleling with a form that won't redirect to its own page. The action attribute is set to "" and method set to post. In that case it should call the same page but I'm ending on a 404 page.

这是我在操作文件中的页面代码:

Here's the code of my page in the action file:

公共函数executeDetail(sfWebRequest $request){

public function executeDetail(sfWebRequest $request) {

if($request->isMethod(sfRequest::POST))
{

        if(!$this->getUser()->isAuthenticated())
                $this->redirect('@user_login');

        $formData = $request->getParameter($this->form->getName());

    $this->form->bind($formData, $request->getFiles($this->form->getName()));

            if ($this->form->isValid())
    {
        $user = $this->getUser()->getLogged();  

        $comment = $this->form->save();
                $comment->setIsActive(1);
                $comment->setAuthor($user);
                $comment->setHash(md5(uniqid(rand(), true)));
                $comment->setArticle($this->detail);
                $comment->save();

                $this->status = 'SUCCESS';



    }
    else
    {
        $this->status = 'ERROR';
    }

}
         $this->story = $this->getRoute()->getObject();
    $this->status = false;
    $this->bAuthorLogged = false;
$this->form = new ArticleCommentForm();
} 

有趣的是,当我从它的 url 调用页面时,它正确显示,404 仅在使用表单提交时发生.

The funny thing is that when I call the page from it's url it's correctly show up, 404 only happens when submitting with the form.

提前致谢

PS:路由配置为:

stories_detail:
  url:   /stories-of-the-month/:slug
  class:   sfDoctrineRoute
  param: { module: stories, action: detail}
  options: { model: Article, type: object, method: doSelectForSlug }

推荐答案

您需要明确允许路由的 POST.将您的路线更改为:

You need to explicitly allow POST for the route. Change your route to:

stories_detail:
  url:   /stories-of-the-month/:slug
  class:   sfDoctrineRoute
  param: { module: stories, action: detail}
  options: { model: Article, type: object, method: doSelectForSlug }
  requirements: 
    sf_method: [get, post]

相关文章