如何将静态变量传递给Laravel路由?
我尝试将Symfony路线重写为Laravel路线。问题是,一些Symfony路由采用默认值,并使用相同的控制器。我可以为Laravel路线添加一些参数来完成相同的任务吗 例如Symfony yaml如何将静态变量传递给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
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);
}
在SomeSymfonyControllerSomefunt
方法中
public function Somefunt(Request $request)
{
dd($request->route('pag_act')); // Returns 'secret' or 'public' based on route
}
是的,问题在于想要在控制器中使用相同的功能,但这会起作用。为什么?因为它仍然与symfony共享。谢谢,我将测试这一点,这可能正是我所需要的!