php – Eloquent:使用数据透视表的混淆
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了php – Eloquent:使用数据透视表的混淆,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1827字,纯文字阅读大概需要3分钟。
内容图文
![php – Eloquent:使用数据透视表的混淆](/upload/InfoBanner/zyjiaocheng/780/dd439b66dde84d7faaf73625cc0ea383.jpg)
我是Laravel&的新手.雄辩.我基本上在我的数据库中有这些表:
>用户:
> id
>电子邮件
>名字
>密码
>优惠券:
> id
>标题
>细节
>折扣
> user_id(创建者)
>投票(支点):
> user_id
> coupon_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"
}
}
]
希望它有效:)
内容总结
以上是互联网集市为您收集整理的php – Eloquent:使用数据透视表的混淆全部内容,希望文章能够帮你解决php – Eloquent:使用数据透视表的混淆所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。