Laravel Eloquent 的 API 适配器?

Posted

技术标签:

【中文标题】Laravel Eloquent 的 API 适配器?【英文标题】:API adapter for Laravel Eloquent? 【发布时间】:2019-11-13 03:10:11 【问题描述】:

我有一个关于 Laravel Eloquent 用法的有趣问题。我正在用 Nova 编写一个基于 Laravel 的管理面板。它应该发送请求并接收对休息 api 的响应。是否有任何解决方案可以将我的雄辩模型用作“api 请求”?

我正在考虑是否进行以下操作:User::all() 之后,api 在后台向 api 的“用户端点”发送请求,然后我取回一个集合?

它可能会称之为一些“api驱动程序”而不是mysql驱动程序,或者一些适配器,但我不知道我应该去哪里寻找,或者我必须做什么。

如果我可以使用它会很好,因为我可以使用响应 json 上的所有 eloquent 功能。

【问题讨论】:

github.com/laravel/framework/issues/5014 自定义驱动程序示例 - github.com/jenssegers/laravel-mongodb 【参考方案1】:

Sushi 是一个雄辩的数组驱动程序,它使用数据数组而不是数据库。我使用 guzzle 将数据从 api 加载到数据数组中,并使用 sushi 汇集到 Eloquent 模型中。

https://github.com/calebporzio/sushi

【讨论】:

【参考方案2】:

这里有“Laravel API 模型驱动程序”:

https://github.com/nazarii-kretovych/laravel-api-model-driver

它也是documented at packagist,可以满足您的需求。在 github 上给作者一颗星,因为这个 repo 接缝是 laravel 核心中缺少的一个非常有用的工具,但是这个包很难找到。

还有另一种解决方案可以作为您工作的基础,但您必须派生 git 存储库并重写代码以满足您的需求:

https://github.com/bahung1221/ApiDriver

In 2014 Tylor Otwell himselve 表示核心团队并未计划该功能,但“可以试一试”。

【讨论】:

以上是关于Laravel Eloquent 的 API 适配器?的主要内容,如果未能解决你的问题,请参考以下文章

Laravel:在 API 测试中使用 Eloquent 模型

具有 Relation 和 Eloquent 的 Laravel Api 资源

Laravel API ResourceCollection - 调用未定义的方法 Illuminate\Database\Eloquent\Builder::mapInto()

Laravel Eloquent API 资源:从响应(集合)中删除“数据”键

Laravel eloquent api 资源删除 `data` 键(无收集)

Laravel API Eloquent Where 子句与 Vue 不工作