Php 雄辩的:使用透视表的困惑
我是拉威尔的新手&口才好。我的数据库中基本上有以下表格:Php 雄辩的:使用透视表的困惑,php,mysql,laravel,eloquent,Php,Mysql,Laravel,Eloquent,我是拉威尔的新手&口才好。我的数据库中基本上有以下表格: 用户: 身份证 电子邮件 名字 密码 优惠券: 身份证 头衔 细部 折扣 用户id(创建者) 投票(重点): 用户id 优惠券id 投票 所以用户可以在优惠券上投票。每个优惠券属于一个用户(创建者)。根据文档,我映射了如下关系: class Coupon extends Model { public function users() { return $this->belongsTo('App\Use
- 用户:
- 身份证
- 电子邮件
- 名字
- 密码
- 优惠券:
- 身份证
- 头衔
- 细部
- 折扣
- 用户id(创建者)
- 投票(重点):
- 用户id
- 优惠券id
- 投票
class Coupon extends Model
{
public function users()
{
return $this->belongsTo('App\User'); // A coupon belongs to one user
}
}
class User extends Model
{
public function coupons()
{
return $this->hasMany('App\Coupon'); // A user has many coupons
}
}
所以我想画出“选票”的部分。我不知道怎么做。我不确定这是否正确:
// User class
public function votes()
{
return $this->belongsToMany('App\Coupon', 'votes'); // A coupon vote belongs to many users?
}
// Coupon class
public function votes()
{
return $this->belongsToMany('App\User', 'votes'); // A user vote belongs to many coupons?
}
我很肯定这是错的。有人能帮我吗?我在4.2中只使用了枢轴,但我认为5应该工作得非常类似
class Coupon extends Model
{
public function coupon_votes()
{
return $this->belongsToMany('App\User', 'votes', 'user_id', 'coupon_id')->withPivot('vote');
}
}
class User extends Model
{
public function coupon_votes()
{
return $this->belongsToMany('App\Coupon', 'votes', 'coupon_id', 'user_id')->withPivot('vote');
}
}
保存:
//add a vote 1 four coupon_id 2
$user->coupon_votes()->attach(2, ['vote' => 1]);
//or multiple - add vote 1 for coupon_id 2 and vote 0 for coupon_id 3
$user->coupon_votes()->sync([2 => ['vote' => 1], 3 => ['vote'=> 0]]);
收回
$user->coupon_votes()->get();
[
{
id: "2",
// ... <-coupon info
pivot: {
user_id: "1",
coupon_id: "2",
vote: "1"
}
},
{
id: "3",
// ... <-coupon info
pivot: {
user_id: "1",
coupon_id: "3",
vote: "0"
}
}
]
$coupon = Coupon::find(2);
$coupon->coupon_votes()->get()
[
{
id: "1",
// ... <- user info
pivot: {
coupon_id: "2",
user_id: "1",
vote: "1"
}
}
]
$user->优惠券投票()->get();
[
{
id:“2”,
//…得到()
[
{
id:“1”,
//…就这样,谢谢你!