3
有沒有一種優雅的方式來嵌套變形金剛的關係使用?我正在構建一個允許集合有條件地包含關係模型的REST接口。到目前爲止,我已經取得了一些成功,但在變壓器方面似乎有點失敗(我承認我對Laravel 5.1和Dingo有點新鮮)。我希望儘可能保持乾爽,所以如果將來關係或屬性發生變化,很容易改變。Laravel 5.1,Dingo - 嵌套變形金剛
例如,一個簡單的場景,其中用戶可以接收一個或多個消息(用戶的hasMany接收的消息)我可以做在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輸出在所有關係中保持一致。這可能嗎?謝謝!
我應該提到,一切似乎都與奇異的物體和Laravel的標準屬性處理一起工作,但我正在使用轉換來分類集合,而且大多數情況下這些都是在這個過程中起作用的。 –