我有User
,Account
和Item
模型。
Account
具有许多User
关系,并且User
具有许多Account
关系。这些被定义为多对多。
一个Account
有许多Item
关系,而我想知道如何为Item
获取所有Account
关系中的所有User
。
// User.php:
public function accounts()
{
return $this->belongsToMany( Account::class );
}
// Account.php
public function users()
{
return $this->belongsToMany( User::class );
}
// Item.php
public function account()
{
return $this->belongsTo( Account::class );
}
关于如何拨打auth()->user()->items
或auth()->user()->accounts()->items
之类的电话的任何想法吗?
答案 0 :(得分:2)
根据您的关系,您可以按以下方式获取用户的每个帐户以及每个帐户中的每个项目:
auth()->user()->accounts()->with('items')->get();
要使上述语句生效,您需要在items
模型上定义Account
关系,如下所示:
//Account.php
public function items()
{
return $this->hasMany( Item::class );
}
答案 1 :(得分:1)
您可以通过“跳过” BelongsToMany
表来定义直接的accounts
关系:
class User extends Model
{
public function items()
{
return $this->belongsToMany(
Item::class,
'account_user',
'user_id', 'account_id', null, 'account_id'
);
}
}
$items = auth()->user()->items;
答案 2 :(得分:1)
如果您只想列出具有这些条件的项目,请从项目模型开始
=INT(43811.1234*24)/24