一尘不染

如何使用包含斜杠字符的参数定义Laravel路线

php

我想定义一个带有参数的路由,该参数将包含一个斜线/字符,例如参数example.com/view/abc/02在哪里abc/02

如何防止Laravel读取斜线作为下一个route参数的分隔符?因此,我现在有了404 not found error


阅读 555

收藏
2020-05-29

共1个答案

一尘不染

将下面的全部路线添加到您的底部,routes.php并记住composer dump-autoload之后再运行。注意,使用“->
where”来指定参数的可能内容,从而使您能够使用包含斜杠的参数。

//routes.php
Route::get('view/{slashData?}', 'ExampleController@getData')
    ->where('slashData', '(.*)');

而且比起在控制器中,您只需像平常一样处理数据(就像它不包含斜杠一样)。

//controller 
class ExampleController extends BaseController {

    public function getData($slashData = null)
    {
        if($slashData) 
        {
            //do stuff 
        }
    }

}

这应该为您工作。

此外,您在此处已获得有关路由参数的详细Laravel文档:[ docs ]

2020-05-29