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

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

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

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

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

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

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

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

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

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

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

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

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

1年前

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

1年前
leo

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

1年前

  • 请注意单词拼写,以及中英文排版,参考此页
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`, 更多语法请见这里 Markdown 语法
  • 支持表情,使用方法请见 Emoji 自动补全来咯,可用的 Emoji 请见 :metal: :point_right: Emoji 列表 :star: :sparkles:
  • 上传图片, 支持拖拽和剪切板黏贴上传, 格式限制 - jpg, png, gif
  • 发布框支持本地存储功能,会在内容变更时保存,「提交」按钮点击时清空
  请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!