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

如何将静态变量传递给Laravel路由?,laravel,laravel-5,laravel-5.3,Laravel,Laravel 5,Laravel 5.3,我尝试将Symfony路线重写为Laravel路线。问题是,一些Symfony路由采用默认值,并使用相同的控制器。我可以为Laravel路线添加一些参数来完成相同的任务吗 例如Symfony yaml path: /account/ defaults: _controller: "legacy.controller.fallback:Somefunt" pag_act: "secret" m_act: "home" path: /ac

我尝试将Symfony路线重写为Laravel路线。问题是,一些Symfony路由采用默认值,并使用相同的控制器。我可以为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"
Route::any('/account', 'SomeSymfonyController@Somefunt');
例如,拉威尔

 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"
Route::any('/account', 'SomeSymfonyController@Somefunt');

正如您所看到的:这两个Symfony路由的默认值不同(pag_act),我可以在Laravel中传递它吗?

只需创建另一个
路由::

Route::any('/account', 'SomeSymfonyController@secretFunt');
Route::any('/account2', 'SomeSymfonyController@publicFunt');
在SomeSymfonyController中,您可以这样说:

public function secretFunt()
{
    $pag_act = 'secret';
    $m_act = 'home';
}

public function publicFunt()
{
    $pag_act = 'public';
    $m_act = 'home';
}

如果
secretFunt()
执行与
publicFunt()
相同的操作,但只有
$pag\u act
的值不同:我们不希望在处理此
$pag\u act
变量时重复内容。因此,我们可以为此创建一个函数:

public function funtHandler($act)
{
    $pag_act = $act;
    $m_act = 'home';
}

public function secretFunt()
{
    $pag_act = 'secret';
    $this->funtHandler($pag_act);
}

public function publicFunt()
{
    $pag_act = 'public';
    $this->funtHandler($pag_act);
}
在SomeSymfonyController
Somefunt
方法中

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

是的,问题在于想要在控制器中使用相同的功能,但这会起作用。为什么?因为它仍然与symfony共享。谢谢,我将测试这一点,这可能正是我所需要的!