Как получить данные с помощью объекта via в Laravel eloquent? - PullRequest
0 голосов
/ 09 октября 2019

На самом деле, я хочу получить данные, используя объект модели, а не через фасад фасада, как упомянуто ниже.

$user = $this->getGuard()->user();

Вышеупомянутый пользователь является текущим зарегистрированным пользователем, который

        "id": 6,
        "name": "kuser",
        "email": "kuser@gmail.com",
        "phone": "03345154067",
        "is_subscribed": 0,
        "subscription_date": null

Но когда япопытайтесь получить тот же $user объект со связанной с ним моделью, такой как карточки, выполнив $user->with(['cards'])->first();, чем он дает первую запись таблицы пользователей с карточками, как указано ниже.

        "id": 1,
        "name": "admin",
        "email": "admin@gmail.com",
        "phone": "03056494616",
        "is_subscribed": 1,
        "subscription_date": "2019-10-08",
        "cards": []

Выше упомянутой записи, которая является объектом пользователя,Это первая запись моей пользовательской таблицы.

На самом деле, я ожидаю .

      "id": 6,
        "name": "kuser",
        "email": "kuser@gmail.com",
        "phone": "03345154067",
        "is_subscribed": 0,
        "subscription_date": null

со связанными модельными картами, такими как

      "id": 6,
        "name": "kuser",
        "email": "kuser@gmail.com",
        "phone": "03345154067",
        "is_subscribed": 0,
        "subscription_date": null
        "cards":[] // array of cards those belongs to it.

Ответы [ 3 ]

1 голос
/ 09 октября 2019

Вы можете использовать Lazy Eager Loading, вам больше не нужно запрашивать пользователя, у вас уже есть:

$user = $this->getGuard()->user();

$user->load('cards');

Документы Laravel 6 - Eloquent - Отношения - Lazy Eager Loading

1 голос
/ 09 октября 2019

Использовать простое where?

$user->where('id', Auth::id())->with(['cards'])->first();

Разве это не сработает?

0 голосов
/ 09 октября 2019

Вот еще один способ

User::with(['cards'])->find($user->id);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...