📅  最后修改于: 2023-12-03 14:53:41.717000             🧑  作者: Mango
当你构建网站和应用程序时,它们需要路由来确定如何将请求映射到响应。Laravel 支持两种类型的路由:闭包路由和控制器路由。闭包路由使用简单的闭包语法,而控制器路由允许你指定控制器方法作为路由处理程序。
在 Laravel 中,可以使用类路由来组织和管理路由。类路由和控制器路由类似,但它们使用类方法来处理请求,这样可以更好地组织代码并使代码更易于测试和维护。
要使用类路由,你需要定义一个类,该类必须继承 Illuminate\Routing\Controller
类,并定义一个公共方法作为路由的处理程序。然后,你可以在路由定义中使用该类。
以下是一个例子:
namespace App\Http\Controllers;
use Illuminate\Routing\Controller;
class UserController extends Controller
{
public function index()
{
// 处理请求的代码
}
}
在上面的例子中,UserController 类继承了 Laravel 提供的 Illuminate\Routing\Controller
类,并定义了一个公共方法 index()
,它将处理路由的请求。
你可以将这个类用作路由定义中的处理程序:
Route::get('/users', 'UserController@index');
在上面的示例中,我们使用 Route::get()
方法来定义一个 GET 请求的路由。我们还指定 UserController 类的 index()
方法作为路由的处理程序。这个路由将映射到 /users
路径。
假设你正在构建一个博客应用程序,并且需要定义以下路由:
{id}
的详细信息。{id}
。{id}
。对于每个路由,我们将创建一个类,该类必须继承 Illuminate\Routing\Controller
类,并定义一个公共方法作为路由的处理程序。
以下是 PostsController
类的代码,该类用于处理 GET 请求来显示所有博客文章:
namespace App\Http\Controllers;
use Illuminate\Routing\Controller;
class PostsController extends Controller
{
public function index()
{
// 处理显示所有博客文章的请求的代码
}
}
在上面的代码中,我们定义了一个公共方法 index()
,它将处理显示所有博客文章的请求。我们将该类用作路由定义中的处理程序:
Route::get('/posts', 'PostsController@index');
以下是 PostController
类的代码,该类用于处理 GET 请求以显示博客文章 {id}
的详细信息:
namespace App\Http\Controllers;
use Illuminate\Routing\Controller;
class PostController extends Controller
{
public function show($id)
{
// 处理显示博客文章详细信息的请求的代码
}
}
在上面的代码中,我们定义了一个公共方法 show()
,它将处理显示博客文章详细信息的请求。我们将该类用作路由定义中的处理程序:
Route::get('/posts/{id}', 'PostController@show');
以下是 PostController
类的代码,该类用于处理 POST 请求以创建新的博客文章:
namespace App\Http\Controllers;
use Illuminate\Routing\Controller;
class PostController extends Controller
{
public function store()
{
// 处理创建新博客文章的请求的代码
}
}
在上面的代码中,我们定义了一个公共方法 store()
,它将处理创建新博客文章的请求。我们将该类用作路由定义中的处理程序:
Route::post('/posts', 'PostController@store');
以下是 PostController
类的代码,该类用于处理 PUT 请求以更新博客文章 {id}
:
namespace App\Http\Controllers;
use Illuminate\Routing\Controller;
class PostController extends Controller
{
public function update($id)
{
// 处理更新博客文章的请求的代码
}
}
在上面的代码中,我们定义了一个公共方法 update()
,它将处理更新博客文章的请求。我们将该类用作路由定义中的处理程序:
Route::put('/posts/{id}', 'PostController@update');
以下是 PostController
类的代码,该类用于处理 DELETE 请求以删除博客文章 {id}
:
namespace App\Http\Controllers;
use Illuminate\Routing\Controller;
class PostController extends Controller
{
public function destroy($id)
{
// 处理删除博客文章的请求的代码
}
}
在上面的代码中,我们定义了一个公共方法 destroy()
,它将处理删除博客文章的请求。我们将该类用作路由定义中的处理程序:
Route::delete('/posts/{id}', 'PostController@destroy');
在 Laravel 中使用类路由可以更好地组织和管理路由,使代码更易于测试和维护。你可以将路由处理程序定义为类方法,这样可以使代码更具可读性和可维护性。当你构建网站和应用程序时,现在你可以使用 Laravel 的类路由来组织和管理你的路由!