gpt4 book ai didi

Laravel 5.1,Dingo - 嵌套变形金刚

转载 作者:行者123 更新时间:2023-12-01 13:51:10 26 4
gpt4 key购买 nike

是否有一种优雅的方式来嵌套转换器以供关系使用?我希望构建一个允许集合有条件地包含关系模型的 REST 接口(interface)。到目前为止,我取得了一定的成功,但在涉及到变形金刚时似乎有点失败(我承认我对 Laravel 5.1 和 Dingo 有点陌生)。我希望尽可能保持 DRY 状态,这样如果将来关系或属性发生变化,也很容易进行更改。

例如一个简单的场景,一个用户可能会收到一条或多条消息(user hasMany received messages)我可以在UserTransformer中做如下操作:

<?php

namespace App\Transformers;

use App\Models\User;
use League\Fractal;

class UserTransformer extends Fractal\TransformerAbstract
{
public function transform(User $user)
{
// Transform the basic model
$returnUser = [
'id' => (int) $user->id,
'email' => $user->email,
'role' => $user->role,
'status' => $user->status,
'links' => [
[
'rel' => 'self',
'uri' => '/users/'.$user->id
]
]
];

// Transform relationships, but only if they exist and are requested
if (isset($user->receivedMessages))
{
$returnUser['received_messages'] = [];

foreach ($user->receivedMessages as $msg)
{
$returnUser['received_messages'][] = [
'id' => $msg->id,
'read' => $msg->read,
'content' => $msg->content
];
}
}
return $returnUser;
}
}

在这种情况下,我想将 MesagesTransformer 嵌套/应用到相关的接收消息以进行输出格式化,以便所有 REST 输出在所有关系中保持一致。这可能吗?谢谢!

最佳答案

我能够在这里找到问题的答案:http://fractal.thephpleague.com/transformers/ .

关于Laravel 5.1,Dingo - 嵌套变形金刚,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31507673/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com