问题标签 [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.
laravel - 按 created_at 和文件关系分组集合
我有这个关系:
每个用户都有画廊,画廊有很多文件。
两个用户可以拥有同一日期的画廊。
这是输出 JSON 响应:
我需要以某种方式按 created_at 值对画廊进行分组,但是为了分组画廊对象,将所有文件保留在相同的 JSON 响应中。像这样:
我尝试使用->groupBy('galleries.created_at')
,但我得到了这个 - 第一个画廊的第一个文件,第二个画廊的第一个文件
laravel - 使用 spatie/laravel-fractal 检索与用户相关的角色列表,权限完美运行
我按照这个主题使用 spatie/laravel-permission 通过用户模型获取角色和权限列表,但没有人关注我的问题。想要通过 spatie/laravel-fractal 检索与用户相关的角色列表,$user->roles
就像$user->permissions
我调用时的 zizaco/entrust 一样fractal($user, new UserTransformer)->parseIncludes(['roles', 'permissions'])->toArray();
,$this->collection($user->roles, new RoleTranformer)
在 UserTranformer.php 中使用但 throws Symfony\Component\Debug\Exception\FatalThrowableError
。我正在使用 laravel 5.7 和 spatie/laravel-permission 和 spatie/laravel-fractal 构建一个 API 项目,因此尝试使用关系组织 json 响应。
php - 解析包括嵌套变压器
鉴于以下情况,我试图弄清楚如何解析嵌套转换器的包含:
我有一个控制器,它设置我的 ArraySerializer,解析 OrderTransformer 的包含,然后创建数据:
在我的订单转换器中,我有我从上面解析的包含调度:
但是,我遇到困难的地方是我的 DispatchesTransformer:
我有一个我想使用的可用包含产品。我不想让它成为默认包含。我如何使用该包含?
我已经从我的控制器尝试过这样的事情:
->parseIncludes(['dispatches', 'product'])
php - 如何在 Laravel 中使用分形转换器返回数组而不是集合
我在基于 Laravel 的 REST API 项目之一中使用分形变压器。我有一个$defaultInclude
,因此在 Transformer 类(ReleaseTransformer
)中有一个函数来处理包含。如下:
在DetailsTranformer
课堂上我有
我在这里得到了正确的数据,但响应如下:
我想将响应作为数组获取,如下所示:
我正在使用扩展程序spatie/laravel-fractal
,并通过以下方式获得响应:
如何修改代码,因为它将返回此数组?
laravel - Laravel 7(带有分形)在使用 withCount 方法时不包括关系计数
我是一个相对较新的 PHP 开发人员,所以我可能会弄错一些。
PHP:7.4 Laravel/Lumen:7.0 Fractal:0.13-dev(我认为)
我有一个模型,Programs
。
与 有belongsToMany
关系Sites
。
我可以使用这个 ProgramController 方法:
使用以下 URL 从 API 返回嵌套关系:http://local:8081/ads/api/programs?client_id=130785&includes%5B0%5D=sites
当我删除includes
查询参数时,sites
块按预期下降。但是我的前端也需要嵌套关系的计数。我知道我可以简单地计算站点数组,但如果可能的话,我想从服务中获取它。
Laravel 文档表明有一个withCount
“将{relation}_count
在您的结果模型上放置一列”。但是,就我而言,它不起作用。当通过邮递员点击这个时,我希望在 Program 模型上看到一个额外的属性,"site_count": 1
. 但我没有看到任何其他属性,也没有错误。
鉴于我对 PHP / Laravel 缺乏经验,我的第一个假设是我做错了什么,但我不知道它可能是什么。谁能提供我所缺少的洞察力?
php - Laravel Dingo API 转换器关系在 availableIncludes[] 中但不在 defaultIncludes[] 中时返回错误
在我的项目中,我使用 Dingo API 和 Fractal 转换器进行响应。
当我调用具有如下关系的站点资源列表 API 时:
如果我将关系放入$defaultIncludes[]
变压器中,但如果我将这些关系放入$availableIncludes[]
并像这样调用我的控制器,它会起作用:
我对数据库查询有一个错误:
请问我做错了什么?
谢谢你。
站点控制器.php
SiteTransformer.php
网站.php
lumen - 有没有办法可以在 League\Fractal 全局解析Includes 而不是在每个闭包中解析?
我正在使用 Lumen 和 Dingo 构建一个 API,并按照Dingo Wiki中的概述实现 Transformers ,并且我正在按照Fractal Transformers 文档中的概述配置包含选项。
我发现如何在 Controller 中作为闭包来执行此操作,但我觉得可能有更好的地方添加它,以便全局使用 parseIncludes 方法,而不是在每个返回中使用。以下是一些代码示例:
用户控制器.php
用户变压器.php
虽然此设置有效,但它需要我将该闭包添加到我想要包含的控制器中的每个响应中。有没有办法可以设置 Transformer 来检查所有请求的包含参数和 parseIncludes?
PHP: 7.4
流明:8.3.2
野狗:3.0.7
php - Laravel 双向数据转换器
我一直在寻找可以双向格式化字段的 Laravel 转换器。这意味着我在将它返回给客户端时对其进行转换,然后在将其再次保存到数据库之前对其进行转换。
我知道我已经可以使用 Fractal 的 Transformer 来做到这一点,但我正在寻找一种方法(代码或 3rd 方库)来实现自动转换。现在我这样做是为了保存功能:
我使用的是旧数据库,所以我在前端使用的字段与数据库不匹配。它也是一个大应用程序,所以我认为如果有一种方法可以使用Trait
模型级别的继承,而不是从控制器、存储库、服务执行上面的代码,那会更好。