假设我有一个UserTransformer。它用于在用户配置文件(私有)和用户列表中显示数据。 现在,我想有条件地返回该数据。如果我是用户,则全部退回。如果不是,则返回基本数据。 正确的方法是什么?如果请求的用户是所有者,我可以在include函数中使用条件条件实现此目的并添加sensitive_data吗?
答案 0 :(得分:1)
如果您使用的是Fractal,则如下所示:
class UserTransformer extends TransformerAbstract
{
public function transform(User $user)
{
$data = [
'id' => $user->id,
'name' => $user->name,
'email' => $user->email,
];
if (Auth::id() === $user->id) {
$data = array_merge($data, User::getSensitiveData($user));
}
return $data;
}
}