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

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

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

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

《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 6
blackbai

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

7年前 评论
Route::get('/newReport/{aid}/{bid}', function($aid, $bid){
    dd($aid, $bid);
});
7年前 评论

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

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

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

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

7年前 评论
<?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]);

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

7年前 评论

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

7年前 评论
leo

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

7年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!