如何从把一个已有的 url 转为 request 或者 route 对象

问答 我不饿 ⋅ 于 10个月前 ⋅ 最后回复由 leo 10个月前 ⋅ 713 阅读

假如有一个路由
/newReport/{aid}/{bid}

然后我有一个url 如下
a.com/newReport/75337/10

我如何取出 aid bid
最好是可以还原到路由 通过->route(aid)的方式
ps:不用正则

本文章首发在 Laravel China 社区
成为第一个点赞的人吧 :bowtie:
回复数量: 6
  • blackbai 热爱学习
    10个月前

    定义方法的时候传入 $aid $bid,与路由绑定的。

  • DavidNineRoc 当神不再是我们的信仰,那么信仰自己吧,努力让自己变好不辜负自己的信仰...
    10个月前
    Route::get('/newReport/{aid}/{bid}', function($aid, $bid){
        dd($aid, $bid);
    });
  • 我不饿
    10个月前

    @施国鹏
    @blackbai
    两位可能理解错我的意思了,

    现在有一个路由 Route::get('/newReport/{aid}/{bid}'

    我的意思是我在一个方法(这个方法非上边的那个路由)内 有一个字符串a.com/newReport/75337/10

    我想知道这个aid 和bid是多少

  • DavidNineRoc 当神不再是我们的信仰,那么信仰自己吧,努力让自己变好不辜负自己的信仰...
    10个月前
    <?php
    
        $url = 'a.com/newReport/75337/10';
        $url = trim(strstr($url, '/'), '/');
    
        $param = explode('/', $url);
    
        $bid = end($param);
        array_pop($param);
        $aid = end($param);
        array_pop($param);
    
        // 拼接route
        $route = '/';
        foreach ($param as $v)
        {
            $route .= $v;
        }
    
        // 生成 url
             route($route, ['aid' => $aid, 'bid' => $bid]);

    不是很明白详细, 这样是否符合?

  • 我不饿
    10个月前

    @施国鹏 可以的,不过你这个跟正则是一个原理差不多,不管怎么说谢谢你了

  • leo MOD 不会写前端的后端不是好运维 1
    10个月前

    关键字 Illuminate\Routing\Router::findRoute,剩下的自己探索

暂无评论~~

  请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!