有没有办法使用Eloquent查询数据透视表而没有该数据透视表的模型?
情况:用户可以拥有多个业务,并且业务可以由多个用户拥有。我有以下表格来处理多对多关系。
| users | businesses | business_user |
-------------------------------------------
| id | id | business_id |
| name | name | user_id |
| created_at| created_at | created_at |
| updated_at| updated_at | updated_at |
我的User.php模型
public function businesses()
{
return $this->belongsToMany('App\Business')->withTimestamps();
}
我的Business.php模型
public function users()
{
return $this->belongsToMany('App\User')->withTimestamps();
}
1-在我的控制器中,我正在尝试查询business_user(pivot)表以计算Auth用户ID所拥有的业务数量。
select count(*) from business_user where user_id = Auth::user()->id() ;
2-我正在尝试查询business_user(pivot)表,以获取表business_user中为该用户ID找到的每一行的业务名称。
select business_user.business_id, businesses.name
from business_user
join businesses
on business_user.business_id = businesses.id
where business_user.user_id = Auth::user()->id() ;
我想用Eloquent查询数据透视表,但我无法正确使用语法。我是否需要该business_user表的模型?
你们有些人不喜欢不使用Eloquent吗?
由于 CV
答案 0 :(得分:1)
您不需要Pivot表的Model。你要求的东西非常简单。
当前登录User
的商家数量
echo \Auth::user()->businesses->count();
当前User
foreach(\Auth::user()->businesses as $business){
echo $business->name;
}