如何将静态变量传递给 Laravel 路由?

onl*_*mas 3 laravel laravel-5 laravel-5.3

我尝试将 Symfony 路由重写为 Laravel 路由。问题是一些 Symfony 路由使用defaults同一个控制器。我可以向 Laravel 路由添加一些参数来完成相同的任务吗?

例如 Symfony yaml

 path: /account/
    defaults:
        _controller: "legacy.controller.fallback:Somefunt"
        pag_act: "secret"
        m_act: "home"

 path: /account2/
        defaults:
            _controller: "legacy.controller.fallback:Somefunt"
            pag_act: "public"
            m_act: "home"
Run Code Online (Sandbox Code Playgroud)

例如laravel

Route::any('/account', 'SomeSymfonyController@Somefunt');
Run Code Online (Sandbox Code Playgroud)

如您所见:这 2 个 Symfony 路由的默认值是不同的 (pag_act),我也可以在 Laravel 中传递它吗?

lin*_*ref 8

Route::any('/account', 'SomeSymfonyController@Somefunt')
      ->defaults('pag_act', 'secret');

Route::any('/account2', 'SomeSymfonyController@Somefunt')
      ->defaults('pag_act', 'public');
Run Code Online (Sandbox Code Playgroud)

并在您的 SomeSymfonyControllerSomefunt方法中

public function Somefunt(Request $request)
{
    dd($request->route('pag_act')); // Returns 'secret' or 'public' based on route
}
Run Code Online (Sandbox Code Playgroud)