2016-04-04 69 views
3

我試圖從Silex應用中的url中獲取參數。如何從Silex中的url中獲取參數

這裏是我的我的控制器的連接方法:

public function connect(Application $app) 
{ 
    $controllers = $app['controllers_factory']; 

    $controllers->get('/list/pois/{id}', array($this, 'actionPoisList')) 
     ->before(array($this, 'controlerAuthentification')); 

    return $controllers; 
} 

在這裏,我試圖這樣做是爲了抓住這個參數:

/** 
* @param Application $app 
* @return \Symfony\Component\HttpFoundation\JsonResponse 
*/ 
public function actionPoisList(Application $app){ 

    return $app->json($app->escape($app['id'])); 
} 

顯然,它不工作,所以任何替代請。由於

回答

1

在URL中的參數會被自動傳遞到您的控制器的路線,如果你在參數的列表中指定它們:

/** 
* @param Application $app 
* @return \Symfony\Component\HttpFoundation\JsonResponse 
*/ 
public function actionPoisList(Application $app, $id){ 

    return $app->json($app->escape($id)); 
} 

考慮到該路由參數和功能參數應準確名稱相同。

+1

其完美的工作。多謝,夥計。 – KubiRoazhon

0

這是最通常被稱爲一個URL蛞蝓,以及硅石文檔考慮到這一點here

基本上你只是傳遞變量在你的路線解析功能

$app->get('/blog/{id}', function (Silex\Application $app, $id) { 
    // access $id here 
})