📜  多个路由相同的控制器 laravel - PHP (1)

📅  最后修改于: 2023-12-03 14:51:40.392000             🧑  作者: Mango

多个路由相同的控制器 Laravel - PHP

在 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 对象来获取路由参数。