У меня есть 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 пользователя.
Вышеуказанные отношения работают, но только когда я вошел в системуочевидно.
Как только я выйду из системы, 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:
Нет, это тоже не работает.