当前位置: 首页 > 面试题库 >

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

唐修能
2023-03-14
问题内容

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

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


问题答案:

将下面的全部路线添加到您的底部,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 ]



 类似资料:
  • 问题内容: 我有这个REST资源: 例如,param可以包含斜杠字符:。 很明显,我在用它来调用它,但是不起作用。 我也尝试过使用,将斜杠编码为,但也不起作用,它也不会到达端点。 编辑 我正在使用Retrofit来调用端点,并且这样做: 使用,但仍然无法正常工作。 问题答案: 保留字符(例如和)必须经过URL编码。 编码为 编码为 尝试。 在RFC 3986个 定义了以下一组保留的字符可被用作分隔

  • null Groovy:找不到四位十六进制字符代码

  • 问题内容: 我有一个字符串存储为: 有没有办法我可以转换成? 问题答案: 您可以为此使用: 输出:

  • 我的代码有点问题: 我的一些东西。id号(Exsample:002917/1)中有一个斜杠。因此,某些图像不会显示。现在,当数字中有斜杠时,我想删除最后两个字符。有没有简单的解决办法? 斜杠只应在代码中的这一点删除,而不应在项目所在的其他位置删除。使用id。 我对vue和javascript非常陌生,所以请宽恕我。 我使用的是vue版本16.13。1.

  • 我对请求/请求类型/标头/正文没有任何控制。 我正在创建一个servlet,它必须处理一个POST请求,该请求将在请求url中包含多个反斜杠。(例如www.servlet.com/path/foo1/foo2/foo3/foo4/foo5) 我想捕获值"fo1/fo2/fo3/fo4/fo5"和反斜线的数量可能会有所不同。以下解决方案将适用于捕捉一个“foo”,但一旦有更多,它将达到404。 {资

  • 问题内容: 我需要在路径字符串中替换为,但是以下代码失败。 有什么有用的建议吗? 问题答案: 使用函数filepath.ToSlash将操作系统路径分隔符替换为路径中的“ /”。 在Windows上,函数返回。在其他操作系统上,该函数按原样返回path参数。