📅  最后修改于: 2023-12-03 14:51:40.392000             🧑  作者: Mango
在 Laravel 中,我们可以使用控制器来处理 HTTP 请求。有时候,我们可能需要将多个路由指向同一个控制器方法。
首先,我们需要创建一个控制器:
php artisan make:controller TestController
接着,定义一个控制器方法:
public function index()
{
// 控制器逻辑
}
现在,我们可以将多个路由指向这个控制器方法,使用 $router
或 $this->app['router']
:
// 通过 $router 实现
$router->get('/route1', 'TestController@index');
$router->get('/route2', 'TestController@index');
$router->get('/route3', 'TestController@index');
// 通过 $this->app['router'] 实现
$this->app['router']->get('/route1', 'TestController@index');
$this->app['router']->get('/route2', 'TestController@index');
$this->app['router']->get('/route3', 'TestController@index');
如果路由包含参数,我们可以在控制器方法中获取这些参数:
// 带参数的路由
$router->get('/user/{id}', 'TestController@index');
// 控制器方法中获取参数
public function index($id)
{
// 控制器逻辑
}
或者,我们可以使用 Request
对象来获取参数:
// 控制器方法中获取 Request 对象
public function index(Request $request)
{
$id = $request->route('id');
// 控制器逻辑
}
在 Laravel 中,有多种方式实现多个路由指向同一个控制器方法。我们可以使用 $router
或 $this->app['router']
,并通过方法参数或 Request
对象来获取路由参数。