在Laravel的Transformer中添加条件数据

时间:2019-10-08 09:23:59

标签: php laravel

假设我有一个UserTransformer。它用于在用户配置文件(私有)和用户列表中显示数据。 现在,我想有条件地返回该数据。如果我是用户,则全部退回。如果不是,则返回基本数据。 正确的方法是什么?如果请求的用户是所有者,我可以在include函数中使用条件条件实现此目的并添加sensitive_data吗?

1 个答案:

答案 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;
    }
}