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

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

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

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

《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
讨论数量: 6
blackbai

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

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

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

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

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

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

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

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

6年前 评论

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

6年前 评论
leo

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

6年前 评论

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