php url映射,php – Laravel:将任意URL解析为相应的Controller / Route?

鉴于我有一个任意的URL映射(以及许多其他)像这样

...

Route::get('/foobar/{parameter}', 'MyFoobarController@index');

...

如何将URL(如http:// localhost / foobar / foo)“反向解析/解析”到此配置的控制器(MyFoobarController)中?请注意:我不是在讨论当前的请求,而是一种将Laravel中映射的任何URL解析为相应的Controller和Action(代码中任何位置,与当前请求无关)的一般方法.谢谢!

更新:它还应正确匹配具有参数的路由.

解决方法:

您可以将URL路径与添加到路由器的路径进行比较.让我们举个例子:

Route::get('/foobar', 'MyFoobarController@index');

您可以使用Route facade获取所有已注册路径的列表:

// This is your URL as a string

$url = 'http://localhost/foobar';

// Extract the path from that URL

$path = trim(parse_url($url, PHP_URL_PATH), '/');

// Iterate over the routes until you find a match

foreach (Route::getRoutes() as $route) {

if ($route->getPath() == $path) {

// Access the action with $route->getAction()

break;

}

}

getAction方法将返回一个数组,其中包含有关为该路由映射的操作的相关信息.您可以查看Illuminate\Routing\Route API以获取有关在匹配路线后可以使用哪些方法的更多信息.

标签:php,routing,routes,laravel

来源: https://codeday.me/bug/20190623/1272171.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值