📜  如何在 laravel 中创建资源 - PHP (1)

📅  最后修改于: 2023-12-03 15:08:41.165000             🧑  作者: Mango

如何在 Laravel 中创建资源

在 Laravel 中,资源是管理模型的常见方法。资源可用于创建,读取,更新和删除(CRUD)模型数据。本文将向您介绍如何在 Laravel 中创建资源。

步骤一:创建资源

在 Laravel 中,模型资源是通过artisan make:resource命令创建的。让我们创建一个Post模型的资源。

php artisan make:resource PostResource

这将在app/Http/Resources文件夹中创建一个名为PostResource的类。

步骤二:定义资源

接下来,我们需要定义资源。将Post模型的相关数据添加到资源中。在PostResource类中,我们可以使用toArray()方法定义资源。

public function toArray($request)
{
    return [
        'id' => $this->id,
        'title' => $this->title,
        'body' => $this->body,
        'user' => new UserResource($this->user),
        'created_at' => $this->created_at,
        'updated_at' => $this->updated_at,
    ];
}

这里我们返回了idtitlebodyusercreated_atupdated_at的数据。其中user是另一个资源,它需要使用UserResource类来定义。

步骤三:使用资源

要在 Laravel 应用程序中使用刚刚定义的资源,您需要将其附加到路由或控制器。让我们假设我们的应用程序有一个用于查看帖子的端点。

Route::get('/posts/{id}', function ($id) {
    return new PostResource(Post::find($id));
});

现在,在访问/posts/1时,响应将返回刚刚定义的PostResource格式的数据。

我们也可以使用资源集,它可以返回限定的数据列表。我们可以使用Collection类来定义资源集。

public function toArray($request)
{
    return [
        'data' => $this->collection,
    ];
}

然后,在路由或控制器中使用资源集。

Route::get('/posts', function () {
    return new PostResourceCollection(Post::all());
});

以上就是在 Laravel 中创建资源的步骤。资源可以在整个应用程序中用于标准化响应,并将响应数据隐藏在资源中。