如何用UserResource资源,隐藏User表的数据?

如何用UserResource资源,隐藏User表的数据,User的数据输出位置,在Request里面修改,整个系统无法运行

《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 4
翟宇鑫

$this->resource->makeHidden(['email']);

1年前 评论
betaban (楼主) 1年前
gongmeng

可以参考以下代码

<?php

namespace App\Http\Resources\SuperviseTask;

use App\Services\SuperviseTaskService;
use Illuminate\Http\Resources\Json\JsonResource;

class SuperviseTaskResource extends JsonResource
{

    /**
     * Transform the resource into an array.
     *
     * @param \Illuminate\Http\Request $request
     * @return array
     */
    public function toArray($request)
    {
        return [
            'id'                  => $this->id,
            'status'              => $this->status,
            'order_status_label'  => $this->order_status_label,
            'order_type'          => $this->order_type,
            'type_name_label'     => $this->type_name_label,
            'collection_info'     => $this->collection_info ?? [],
            'created_at'          => $this->created_at->toDateTimeString(),
            'updated_at'          => $this->updated_at->toDateTimeString(),
            'third_task_reason'   => $this->third_task_reason,
            'report_histories'    => SuperviseReportHistoryResource::collection($this->reportHistories),
            $this->mergeWhen($this->status == SuperviseTaskService::SUPERVISE_STATUS_CHECK_REPORT, [
                'max_review_time'    => $this->max_review_time,
                'review_submit_time' => $this->review_submit_time,
            ]),
            $this->mergeWhen(isset($this->reviewers) && filled($this->reviewers), [
                'reviewers' => $this->reviewers,
            ]),
            $this->mergeWhen(isset($this->order_numbers) && filled($this->order_numbers), [
                'order_numbers' => $this->order_numbers,
            ]),
            'last_instance'       => $this->last_instance,
            'last_instance_label' => $this->last_instance_label
        ];
    }
}
/**
     * 详情
     * @param Request $request
     * @param         $id
     * @return \Illuminate\Http\JsonResponse|\Illuminate\Http\RedirectResponse
     */
    public function show(Request $request, $id)
    {
        $detail = app(SuperviseTaskService::class)->getDetail($id);
        return $this::success('成功', new SuperviseTaskResource($detail));
    }
1年前 评论
betaban (楼主) 1年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!