Laravel路由组-在控制器中使用值

问题描述 投票:1回答:3

我的所有请求都以前缀开头,因此我创建了具有多个端点的路由组:

routes / web.php

Route::group(array('prefix' => $prefix), function() { 
    Route::get("/test/test2/{lang}", ['uses' => 'TestController@test2']);
    ...
});

Controller:

class TestController {
  public function test2(Request $request, $lang) {}
}

使用以下测试网址:

domain.com/customprefix/test/test2/en

我到达控制器并可以访问$lang(= en)。但是如何将$prefix传递给控制器​​方法? (在此示例中,该值应为“ customprefix”)

很遗憾,我没有在文档或API规范中找到关于此的信息。

php laravel laravel-routing
3个回答
0
投票

您可以通过路由器从应用程序容器中获取当前路由对象来获得此信息:

/** @var \Illuminate\Routing\Router $router */
$router = app('router');
$prefix = $router->getCurrentRoute()->getPrefix();

0
投票

您是否已尝试使用路由前缀? 。如果没有,那么它应该看起来像这样

public function test2(Request $request, $lang){
   dd($request->route()->getPrefix());
}

0
投票

在您的Controller中,您可以获取前缀作为以下解决方案之一:

1.With $reques

 public function TestController(\Illuminate\Http\Request $request)
{
  $request->route()->getPrefix();
}

2。没有$request

$this->getRouter()->getCurrentRoute()->getPrefix()
© www.soinside.com 2019 - 2024. All rights reserved.