Symfony - Запрошенная форма URL не найдена - PullRequest
1 голос
/ 03 января 2012

Я работаю над проектом Symfony.Я сражаюсь с формой, которая не будет перенаправлять на свою страницу.Атрибут действия имеет значение «», а метод - «отправлять».В этом случае он должен вызывать ту же страницу, но я заканчиваю на странице 404.

Вот код моей страницы в файле действий:

открытая функция 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 происходит только при отправке с формой.

Заранее спасибо

PS: конфигурация маршрутизации:

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

1 Ответ

2 голосов
/ 03 января 2012

Вам необходимо явно разрешить POST для маршрута.Измените свой маршрут на:

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]
...