我有一个Customer
雄辩的模特。 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
之类的东西吗?
编辑:
不,这也不起作用。
答案 0 :(得分:0)
您必须检查用户是否已登录?
Auth::check() ? Auth::user()->id : null