[英]Laravel 5: how to query a pivot table using Eloquent
有没有办法使用 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(数据透视表)表以计算 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 吗?
谢谢简历
您不需要数据透视表的模型。 你要求的东西非常简单。
当前登录User
拥有的企业数量
echo \Auth::user()->businesses->count();
当前User
的每个企业的名称
foreach(\Auth::user()->businesses as $business){
echo $business->name;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.