2017-08-13 217 views
1

我需要有多個定價級別的路線(bronze,silvergold)。目前,我有:如何使用相同的路線的多個選項(Laravel 5)

Route::get('/{level}', [ 'as' => 'pricing', 'uses' => '[email protected]']); 

然而,這種匹配任何東西,我怎麼能讓那麼它只匹配:bronzesilvergold在閱讀像這樣在我的控制器值:

public function pricing($level) { 
    $data['level'] = $level; 
    return View::make('pages.pricing', $data); 
} 

回答

3

我會建議使用switch-case聲明(或if/else)在函數內部處理該函數。

public function pricing() { 
    switch ($level) { 
     case 'silver': 
      // do something 
      break; 
     case 'bronze': 
      // do something 
      break; 
     case 'gold': 
      // do something 
      break; 
     default: 
      throw new \Exception('not one of bronze. silver or gold'); 
    } 
} 

但是你可以寫

Route::get('/{level}', [ 'as' => 'pricing', 'uses' => '[email protected]'])->where('level', '(bronze|silver|gold)');