Ресурсы Laravel API: различные доходы в зависимости от роли пользователя - PullRequest
1 голос
/ 19 октября 2019

Я впервые использую Api Resource в Laravel 5.8 для возврата данных в приложение. Существует модель User, содержащая некоторую общедоступную и личную информацию о пользователе. Пользователь может видеть всю свою информацию (такую ​​же как имя, номер телефона, адрес электронной почты, ...), но другие могут видеть только имя и имя пользователя. Как я могу справиться с этим в Api Resource?

Заранее спасибо.

1 Ответ

2 голосов
/ 19 октября 2019

Вы можете использовать Условные атрибуты

public function toArray($request)
{
    return [
        'id' => $this->id,
        'name' => $this->name,
        'username' => $this->username,
        'email' => $this->when(auth()->id() == $this->id, 'email'),
        'phone_number' => $this->when(auth()->id() == $this->id, 'phone'),
        'created_at' => $this->created_at,
        'updated_at' => $this->updated_at,
    ];
}

Это вернет адрес электронной почты и номер телефона только тогда, когда аутентифицированный пользователь пытается просмотреть свою собственную информацию

Надеждаэто помогает

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...