Laravel: отношение hasMany +, когда условие не выполняется - PullRequest
0 голосов
/ 08 февраля 2019

У меня есть Customer Eloquent модель.Customer может иметь несколько WishLists, где он / она может добавлять некоторые продукты.Типичные функции электронной коммерции.

Дело в том, что Customer может принадлежать многим Users моделям.

Это было легко:

public function users()
{
    return $this->belongsToMany(User::class, 'users_sync_customers', 'customer_uuid', 'user_id')
        ->withTimestamps()
        ->orderBy('last_name', 'asc');
}

Так что я могу получить всеCustomers назначено для авторизованного пользователя

auth()->user()->customers ?

Как я уже говорил, Customer может иметь несколько Wishlists:

public function wishLists()
{
    return $this
        ->hasMany(WishList::class, 'customer_uuid', 'uuid')
        ->where('user_id', '=', auth()->user()->id); // <----- this will fail when I log out
}

, но WishList относится к UUID клиента и ID пользователя.

enter image description here

Вышеуказанные отношения работают, но только когда я вошел в системуочевидно.

Как только я выйду из системы, auth()->user()->is будет NULL, и я получу:

ErrorException {# 1483 #message: "Попытка получить свойство 'id'необъекта "

Вопрос: Как я могу ссылаться на wishLists() значение user_id?

WishList модель имеет это:

public function user()
{
    return $this->belongsTo(User::class, 'user_id', 'id');
}

Так что я могу использовать что-то вроде $this->user->id?

edit:

Нет, это тоже не работает.

enter image description here

1 Ответ

0 голосов
/ 08 февраля 2019

Вы должны проверить, что пользователь вошел в систему?

Auth::check() ? Auth::user()->id : null
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...