我想定义一个带有参数的路由,该参数将包含一个斜线/字符,例如参数example.com/view/abc/02在哪里abc/02。
/
example.com/view/abc/02
abc/02
如何防止Laravel读取斜线作为下一个route参数的分隔符?因此,我现在有了404 not found error。
404 not found error
将下面的全部路线添加到您的底部,routes.php并记住composer dump-autoload之后再运行。注意,使用“-> where”来指定参数的可能内容,从而使您能够使用包含斜杠的参数。
routes.php
composer dump-autoload
//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 ]