Laravel 5.1,野狗-嵌套变压器

Laravel 5.1,野狗-嵌套变压器,laravel,dingo-api,Laravel,Dingo Api,是否有一种优雅的方式来嵌套关系使用的变压器?我希望构建一个REST接口,允许集合有条件地包含关系模型。到目前为止,我已经取得了一些成功,但当谈到变形金刚时,它似乎有点崩溃了(我承认我对Laravel5.1和Dingo有点陌生)。我希望尽可能保持干燥,这样,如果关系或属性在未来发生变化,就很容易改变 例如,在一个简单的场景中,用户可能会收到一条或多条消息(用户有许多收到的消息),我可以在UserTransformer中执行以下操作: <?php namespace App\Transfor

是否有一种优雅的方式来嵌套关系使用的变压器?我希望构建一个REST接口,允许集合有条件地包含关系模型。到目前为止,我已经取得了一些成功,但当谈到变形金刚时,它似乎有点崩溃了(我承认我对Laravel5.1和Dingo有点陌生)。我希望尽可能保持干燥,这样,如果关系或属性在未来发生变化,就很容易改变

例如,在一个简单的场景中,用户可能会收到一条或多条消息(用户有许多收到的消息),我可以在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;
    }
}

我在这里找到了我的问题的答案:。

我应该提到的是,对于单个对象和Laravel的标准属性处理,一切似乎都很顺利,但我正在使用转换对集合进行分页,而这正是最重要的。