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

问答 我不饿 ⋅ 于 1年前 ⋅ 最后回复由 leo 1年前 ⋅ 861 阅读

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

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

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

本文章首发在 Laravel China 社区
成为第一个点赞的人吧 :bowtie:
回复数量: 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年前 1
您需要登陆以后才能留下评论!

Composer 中国全量镜像

Top 250 扩展包

Lumen 中文文档

Laravel 速查表

Laravel 中文文档

Laravel 项目开发规范

Laravel 开发环境部署

Composer 中文文档

Elasticsearch-PHP 中文文档

Lumen 中文文档

GraphQL PHP 中文文档

社区文档撰写指南

TDD 构建 Laravel 论坛笔记

PHP PSR 标准规范

PHP 设计模式全集

Dingo API 中文文档