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

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

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 появляется только при отправке с формой.
Я надеюсь, что это говорит с кем-то
спасибо заранее

1 Ответ

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

1) Определите свой открывающий тег формы следующим образом:

<?php echo $form->renderFormTag($sf_request->getUri()) ?>

2) проверьте, принимает ли ваш маршрут ваш http метод (post / put): звонок из bash в директорию вашего приложения:

./symfony app:routes frontend

Вы увидите все ваши маршруты и их определения (с принятыми методами http)

3) Вы можете определить его в своем маршруте:

route_name:
  url:        /my-nice-url
  param:    { module: yourModuleName, action: detail }
  requirements:
    # this is what matters - if you leave it undefined, it shlould accept any HTTP method
    sf_method: [get, post, put, delete]

Это очень хороший источник информации о конфигах: http://www.symfony -project.org / ссылка / 1_4 / а /

...