簡體   English   中英

如何在 Symfony2 路由中使用可選參數?

[英]How can I have optional parameters in Symfony2 route?

我在下面有這個代碼:

/**
 * Lists all User entities.
 *
 * @Route("/{cid}",defaults={"cid" = null},name="user")
 * @Template()
 */
public function indexAction($cid=null)
{}

現在,如果我輸入site/user/1那么它就可以工作,但是如果我輸入site/user/它會說:

No route found

我怎么能知道兩條路線都有效?

嘗試轉到site/user (注意末尾沒有反斜杠)。

一般來說它應該可以工作,我有相對相似的配置工作。

但是,如果所有其他方法都失敗了,您始終可以為同一操作定義多個路由,即

/**
 * Lists all User entities.
 *
 * @Route("/", name="user_no_cid")
 * @Route("/{cid}", name="user")
 * @Template()
 */
public function indexAction($cid=null)
{

使用 yml 文件進行路由配置,並在路由參數中為 id 添加默認值,如下所示:

user:
  pattern:   /site/user/{id}
  defaults:  { _controller: YourBundle:Default:index, id: 1 }

請參閱此處的文檔

你也可以用一個 GET 參數來做,例如

/**
 * @param Request $request
 *
 * @return Response
 */
public function displayDetailAction(Request $request) : Response
{
    if ($courseId = $request->query->get('courseId')) {

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM