2016-08-16 21 views
0

私はSymfonyアプリケーションでRoutingに少し問題があります。誰かが私を助けてくれるのかどうか疑問に思っていました。Symfonyでのルーティングの問題

私はこの正確な順序で私のコントローラ内に設置これら二つの機能を持っている: -

/** 
* @Route("{region}/{area}", name="livearea") 
*/ 
public function liveareaAction(Request $request, $region, $area) 
{ 
    // START THE ENTITY MANAGER FOR DOCTRINE DB 
    $em = $this->getDoctrine()->getManager('crm'); 

    // FIND THE LOCATION REGION 
    $query = $em->getRepository(ENTITY)->findOneBy(array('link' => $region)); 

    if($query == NULL || $query->getActive() == '0') { 
     $slug = $region."/".$area; 

     return $this->redirectToRoute("livepages", array('slug' => $slug)); 
    } else { 
     // CONTINUE WITH CODE 
    } 
} 

は、このものがある: -

/** 
* @Route("{slug}", name="livepages", requirements={"slug"=".+"}) 
*/ 
public function livepagesAction(Request $request, $slug) 
{ 
    $repository = $this->getDoctrine()->getRepository('AppBundle:Pages'); 
    $pages = $repository->findOneBySlug($slug); 

    if($pages == NULL || $pages->getActive() == '0') { 
     throw $this->createNotFoundException('Not Found'); 
    } 

    // CONTINUE TO PAGE 
} 

の両方が相互に矛盾しています。どのように私はそれが仕事をしたいがliveareaは何も持っていない場合は、livepages機能へのリダイレクトを強制されます。それが起こる可能性はありますか?

UPDATE

これは重複として同定されているが、重複した問題は働いていませんでした。したがって、これは新しい問題として提起されました。

+0

の両方が変数を探しています。それらにプレフィックスを付けてみてください。 – Rooneyl

+0

こんにちはRooneyl、残念ながら私の人は、これらが使用されているように接頭辞を欲しません。(例えば、ライブサイト。 –

+0

livepagesActionを最初に入れてみてください – Rooneyl

答えて

0

私は全く同じ動作をしているプロジェクトで作業しています。

liveareaActionlivepagesActionを入れslugが知られている地域とエリアとliveareaルートと一致した場合、その後livepagesのチェックを追加して、私はあなたの場合にはどうなるのか。 「はい」の場合は、指定された地域とエリアを使用してliveareaに転送します。