2012-01-02 29 views
1

私はsymfonyプロジェクトに取り組んでいます。自分のページにリダイレクトされないフォームと戦っている。アクション属性は ""に設定され、メソッドはポストに設定されます。その場合、同じページを呼び出す必要がありますが、私は404ページで終了します。symfony - フォーム要求のURLが見つかりません

ここでアクションファイルの私のページのコードです:

パブリック関数executeDetail(sfWebRequest $リクエスト) {

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 } 
+0

ルーティング設定を投稿できますか? – MrGlass

+0

ありがとうございます。私はあなたがそこにそれを見つけることができる投稿を編集しました。 –

+0

フォームにurlアクションが正しく作成されていることを確認してください。 – macgyver

答えて

2

あなたが明示的にルートの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] 
関連する問題