【问题标题】:How to send specific fields in Laravel Resource如何在 Laravel 资源中发送特定字段
【发布时间】:2020-05-15 13:34:15
【问题描述】:

我需要从 API 资源发送特定字段

这是我的User资源代码

namespace App\Http\Resources;

use App\Models\MediaFile;
use Illuminate\Http\Resources\Json\JsonResource;
use Illuminate\Support\Facades\Storage;

class User extends JsonResource
{
    /**
     * Transform the resource into an array.
     *
     * @param \Illuminate\Http\Request $request
     * @return array
     */
    public function toArray($request)
    {
        $attributes = $this->getAttributes();
        unset($attributes['password']);

        return [
            'type' => 'users',
            'attributes' => $attributes,
        ];
    }
}

以下是我的属性

"attributes": {
        "id": "1",
        "email": "email",
        "full_name": "Name",
        "permission": "admin",
        "security_key": "alpha",
        "token": "encrypted token",
        "two_factor_enabled": "true",
        "created_at": "2020-05-15 08:56:50",
        "updated_at": "2020-05-15 08:56:57",
      }

我想隐藏特定路线中的特定字段。我该如何实现?

【问题讨论】:

  • laravel.com/docs/5.8/… 你可以使用 $hidden 属性。
  • $hidden 将隐藏所有路线。但我需要在特定方法中隐藏特定字段

标签: laravel api laravel-api laravel-resource


【解决方案1】:

使用 ma​​keHidden

$user = \App\Models\User::firstOrFail();

$user->makeHidden(['email', 'phone']);

return $user;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-05-09
    • 2021-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多