问题标签 [thephpleague-fractal]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - 基于光标的分页和 UUID
我正在考虑实现 UUID 来代替自动增量 ID,并且想知道是否或如何将基于光标的分页与 UUID 集成。
通过简单的自动增量,我可以简单地在当前 ID 上添加/减去以找到我的下一个/上一个,但这对于 UUID 是不可能的。
在时间戳列上使用光标作为 created_on / modified_on 会更有意义吗?
我正在使用 Laravel 4,PhpLeague\Fractal ( https://github.com/thephpleague/fractal ) 并正在考虑引入 Rhumsaa\Uuid ( https://github.com/ramsey/uuid )
php - 如何使可用包括在 phpleague/fractal 中的工作
我在实施 Fractal 包含时遇到了麻烦。我正在尝试包含特定用户的帖子。
当我在我的 UserItemTransformer 顶部将“帖子”添加到$defaultIncludes时,一切顺利。帖子按预期包含在内。但是,当我将 $defaultIncludes 更改为$availableIncludes时,即使在调用之后,帖子也不包含在我的 json 输出中$fractal->parseIncludes('posts');
问题似乎在于包含帖子的方法仅在我使用 $defaultIncludes 时才被调用。当我使用 $availableIncludes 时,它永远不会被调用。
我可能在这里遗漏了一些明显的东西。你能帮我看看它是什么吗?
这有效:
这不起作用:
php - Using parseincludes in Laravel5 Fractal
Struggling using parseIncludes in https://github.com/thephpleague/fractal.
I have two tables, Property and Weeks. Each property has many weeks. Using Fractal I can return my property item with a collection of weeks. What I want to do is use parseIncludes, so that the return of weeks is optional.
PropertyTransformer.php
WeekTransformer.php
My PropertyController.php
I get the following error on the parseIncludes:-
Method 'parseIncludes' not found in class \League\Fractal\Scope
I'm following the guide here on transformers - http://fractal.thephpleague.com/transformers/
I think I am going wrong somewhere here where it says:-
These includes will be available but can never be requested unless the Manager::parseIncludes() method is called:
If I remove the parseIncludes, I don't get an error, I also get my property data with my collection of weeks, but ?include=week doesn't work to optionally get it.
php - Laravel 5.1 和 Fractal:包括转换器上的数据透视表数据
表:contact
,company
以及具有自定义数据透视属性的关系表company_contact (company_id, contact_id, is_main)
公司和联系人具有多对多关系(belongsTo
在两种模型上)。
检索公司联系人时的预期输出:
当我检索联系人列表时的预期输出?include=companies
:
添加数据透视表属性的最佳方法是什么?is_main
如果设置了属性,添加公司转换器似乎不是很干净。
对于第一个示例,我正在考虑使用以下参数?include=company_relationship:company_id(1)
:
我了解如何检索数据透视表(相关:Laravel 5.1 - 三个表之间的数据透视表,更好的选择?)但不是在https://github.com/thephpleague/fractal Transformer 逻辑中添加它的最佳方式。
我已经有一个 ContactTransformer 和 CompanyTransformer 但如果我添加is_main
到 CompanyTransformer 我所做的所有呼叫(与联系人相关或不与联系人相关)也将期望该属性。
php - Laravel Fractal 不会从包含关系返回元数据
这是我PostTransformer
包含关系的地方
这也应该导致评论与元的关系。但这里的问题是我没有得到包含关系的元数据。如果有人可以帮助我解决这个问题。
php - 具有不同序列化器的分形转换器,用于嵌套项目和集合
为了改变 Laravel 5.4 RESTful API 发送的 JSON 输出,我使用了 thephpleague 的 Fractal 包。因为将来会添加分页,所以集合使用默认的 DataArraySerializer 并且单个项目使用 ArraySerializer 很重要。还需要为更深的嵌套对象赋予相同的结构。我怎样才能实现这一点(全球或不)?
php - 我可以使用转换器来转换来自 API 而不是来自数据库的数据吗?
我一直在使用 laravel 来构建我的 API。我使用转换器从模型对象转换数据。
现在不是数据库,而是来自作为数据源的 API 的响应,我想将该数据转换回用户,但我无法这样做。
我的控制器
我的变压器
这里的 OnboardingEntity 是指理想情况下来自数据库的数据。这里我不是从数据库中获取数据,而是我的数据来自 API 源。我该怎么做。我在这里有点困惑。有人可以给出解决方案吗?
$result 有以下响应
php - 用于集合的 Laravel 5.5 API 资源(独立数据)
我想知道是否可以为项目资源和集合资源定义不同的数据。
对于收藏,我只想发送['id', 'title', 'slug']
,但项目资源将包含额外的详细信息['id', 'title', 'slug', 'user', etc.]
我想实现类似:
PageResourceCollection将无法按预期工作,因为它使用PageResource所以它需要
我可以将资源复制到PageFullResource
/PageListResource
和PageFullResourceCollection
/PageListResourceCollection
但我试图找到一种更好的方法来实现相同的结果。
laravel - Laravel 分形变压器 - 不包括在内
我在 laravel 5.3 中使用分形包。我有一个hasMany
与视频有关系的播放器模型,所以一个播放器有很多视频。
播放器型号:
视频型号:
我正在尝试发送播放器数据并包含视频数据。这是控制器中的代码:
这是PlayerTransformer
:
我正在获取播放器数据,但我没有得到任何视频。这不起作用,但是如果尝试使用视频会更奇怪,我什至没有在其转换器中包含功能:
但是,当我尝试在其中包含玩家数据时,它会起作用:
然后我尝试对视频转换器应用相同的设置并删除播放器转换器中的$availableIncludes
and includeVideos
,但它再次在那里不起作用。我究竟做错了什么?
php - 使用分形从数组解码到自定义 PHP 对象
使用联盟/分形,我正在尝试将数据从数组转换为我的 PHP 对象...以下列方式
我的对象定义
在这里测试实现
但我得到这个错误
编辑 1
我尝试将数组包装到 Fractals 集合中,即
它现在返回一个实例League\Fractal\Scope
而不是我的 StatusObject 实例
编辑 2
添加 ->toArray() 让我回到第一个错误