【发布时间】:2014-05-21 02:40:19
【问题描述】:
目前我在 Laravel 中的路线遇到了一些问题。 例如我有以下网址:
example.com/ads/all/experience:10-30;/wo/page-5
其中的参数分别是控制器、类别、滑块变量(不要介意奇怪的格式,它是 javascript 生成的)、教育程度和页面(编号)。
为了让这个 url 正常工作,我使用以下路线:
Route::get ( 'ads/{category}/{sliders?}/{education?}/{page?}' , 'AdsController@getIndex' )
-> where ( 'sliders?' , '(hours|experience):([0-9]+)-([0-9]+);' )
-> where ( 'education?' , '(mbo|hbo|wo)' )
-> where ( 'page?' , '(page-|page)([0-9])*' );
现在的问题是:我希望人们能够只输入网址的一部分。例如:
example.com/ads/all/page-5
只会显示第 5 页上列出的所有广告。或者:
example.com/ads/all/wo/page-3
这将显示第 3 页上列出的所有教育级别为“wo”的广告。
我希望是因为我对参数“?”使用了可选选项并且由于正则表达式,当参数未满足时,laravel 会自动识别,并且控制器会得到如下信息:
getIndex ( $categories = 'all' , $sliders = null , $education = 'wo' , $page = '3' )
但不幸的是,事实并非如此。任何人都对如何解决这个问题有任何想法(除了重新排序参数,这不是一个选项)
【问题讨论】: