spatie/laravel-resource-links

此包已被弃用且不再维护。未建议替代包。

为 Laravel API 资源添加链接

1.1.2 2021-01-13 11:27 UTC

This package is auto-updated.

Last update: 2021-04-14 14:34:28 UTC


README

此包已被弃用: Laravel 资源链接两年后

为 Laravel API 资源添加链接

Latest Version on Packagist GitHub Workflow Status Check & fix styling Total Downloads

假设你有一个包含 indexshowcreateeditstoreupdatedelete 方法的 UsersController 以及一个 UserResource。如果你可以在不从头开始构建的情况下立即在 UserResource 中获得这些方法的 URL,岂不是很好?

此包将根据你定义的控制器或操作将链接添加到你的资源中。让我们看一个资源示例。

class UserResource extends JsonResource
{
    use Spatie\ResourceLinks\HasLinks;
    use Spatie\ResourceLinks\HasMeta;

    public function toArray($request): array
    {
        return [
            'id' => $this->id,
            'name' => $this->name,
            'links' => $this->links(UsersController::class),
        ];
    }

    public static function meta()
    {
        return [
            'links' => self::collectionLinks(UsersController::class),
        ];
    }
}

现在在创建 UserResource 集合时,你将拥有来自 UserController 的所有链接

{
   "data":[
      {
         "id":1,
         "name": "Ruben Van Assche",
         "links": {
            "show": "https://laravel.app/users/1",
            "edit": "https://laravel.app/users/1/edit",
            "update": "https://laravel.app/users/1",
            "delete": "https://laravel.app/users/1"
         }
      }
   ],
   "meta": {
      "links": {
         "index": "https://laravel.app/users",
         "create": "https://laravel.app/users/create",
         "store":  "https://laravel.app/users"
      }
   }
}

支持我们

68747470733a2f2f6769746875622d6164732e73332e65752d63656e7472616c2d312e616d617a6f6e6177732e636f6d2f6c61726176656c2d7265736f757263652d6c696e6b732e6a70673f743d31

我们在创建 一流的开源包 上投入了大量资源。您可以通过 购买我们的付费产品之一 来支持我们。

我们非常感谢您从家乡寄来明信片,说明您正在使用我们的哪个包。您可以在 我们的联系页面 上找到我们的地址。我们将在 我们的虚拟明信片墙 上发布所有收到的明信片。

为什么在资源中包含链接?

假设您正在构建单页应用程序或使用 Inertia 构建的应用程序,那么您有一个运行在后端的 PHP 应用程序和一个运行在前端的前端 JavaScript 应用程序。这些应用程序通过 api 进行通信,但前端如果想要将用户路由到另一个页面怎么办?

由于路由是在后端定义的,前端不知道应该将用户路由到哪里。我们可以在 JavaScript 代码中直接写入 URL,但如果路由发生更改怎么办?所以为什么不把这些路由从后端传递到前端呢?您可以直接手动写下所有这些路由,或者让这个包为您完成这项工作。

设置资源链接

我们为此包有一个专门的 文档 网站。

测试

composer test

更新日志

请参阅 更新日志 了解最近发生了什么变化。

贡献

请参阅CONTRIBUTING获取详细信息。

安全

如果您发现任何与安全相关的问题,请发送电子邮件至freek@spatie.be,而不是使用问题跟踪器。

致谢

许可证

MIT许可证(MIT)。请参阅许可证文件获取更多信息。