@verygoodboy

Как правильно добавить в Laravel ресурс данные из других моделей или массива?

Всем привет.
Есть такая задача, не могу понять как правильно кастомизировать ресурс.

1 В контроллере возвращаю ресурс авторизованного пользователя

public function getUser(Request $request)
    {
        return response()->json(new UserResource($request->user());
    }


2 Сам ресурс выглядит так

public function toArray($request)
    {
        return [
            'name' => $this->name,
            'email' => $this->email,
            'balance' => ?????
        ];
    }


В этот массив необходимо передать еще данных, которые я получаю по условию. Например, добавить поле 'balance' по условию:
$balance = NULL;
            if ($user->hasVerifiedEmail()) {
                $balance = 100;
            }


Подскажите, пожалуйста, где правильно получить $balance - в контроллере или ресурсе и как добавить значение $balance в поле 'balance' в исходный массив метода toArray?
  • Вопрос задан
  • 202 просмотра
Решения вопроса 1
iMedved2009
@iMedved2009
Не люблю людей
public function toArray($request)
    {
        return [
            'name' => $this->name,
            'email' => $this->email,
            'balance' => $this->resource->hasVerifiedEmail()?100:0,
        ];
    }


но наверное правильнее - если у вас это во многих местах такая логика - вынести в модель т.е. через mutators и тогда будет просто $this->balance.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы