如何将静态变量传递给 Laravel 路由?
How to pass a static variable to a Laravel route?
我尝试将 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"
例如laravel
Route::any('/account', 'SomeSymfonyController@Somefunt');
如您所见:这 2 个 Symfony 路由的默认值不同 (pag_act),我也可以在 Laravel 中传递它吗?
只需再创建一个Route::
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_act
的值不同:我们不希望在处理此 [=16] 时出现重复内容=] 变量。所以我们可以为此创建一个函数:
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);
}
Route::any('/account', 'SomeSymfonyController@Somefunt')
->defaults('pag_act', 'secret');
Route::any('/account2', 'SomeSymfonyController@Somefunt')
->defaults('pag_act', 'public');
并在您的 SomeSymfonyController Somefunt
方法中
public function Somefunt(Request $request)
{
dd($request->route('pag_act')); // Returns 'secret' or 'public' based on route
}
我尝试将 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"
例如laravel
Route::any('/account', 'SomeSymfonyController@Somefunt');
如您所见:这 2 个 Symfony 路由的默认值不同 (pag_act),我也可以在 Laravel 中传递它吗?
只需再创建一个Route::
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_act
的值不同:我们不希望在处理此 [=16] 时出现重复内容=] 变量。所以我们可以为此创建一个函数:
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);
}
Route::any('/account', 'SomeSymfonyController@Somefunt')
->defaults('pag_act', 'secret');
Route::any('/account2', 'SomeSymfonyController@Somefunt')
->defaults('pag_act', 'public');
并在您的 SomeSymfonyController Somefunt
方法中
public function Somefunt(Request $request)
{
dd($request->route('pag_act')); // Returns 'secret' or 'public' based on route
}