如何处理laravel 5中的破折号路径以获取多个参数

时间:2015-10-19 12:56:25

标签: php laravel routes laravel-5

这是我的网址结构

  

http://example.com/embed-id-size

     

http://example.com/embed-adsdfwer3-640x240

其中size是可选参数。

我在laravel 5的routes.php中编码就像这样。

Route::any('embed-{id}-{size?}',['uses'=>'Example@video','as'=>'embed']);

最重要的是运作良好没有问题,但是当我的ID已经像这样突然出现问题 adsdfw-r3

http://example.com/embed-adsdfw-r3-640x240 http://example.com/embed-adsdfw-r3

以上url laravel路由不工作和路由假设有三个参数。

经过多次搜索后,我发现->where('id', '.*(?=-)')我将这个应用到我的路线上并且只有当我给我的网址大小时才能使用它,但是在应用->where('id', '.*(?=-)')尺寸后尺寸是一个可选参数是必须的给。

请帮我解决这个问题。

我希望你能理解我的问题。

1 个答案:

答案 0 :(得分:1)

由于id中的短划线,你实际上没有简单的方法来解决这个问题。

我要么确保没有破折号,要么我会抓住整个事件{id}-{size?}并稍后计算最终是否有分辨率,哪一个是id。