我有两个模型,User
和Badge
。用户可以拥有多个徽章,徽章可以属于多个用户。 (使用数据透视表)
目前我正在获取我需要的数据,但另外我正在获取pivot
表。如何排除这个?
以下是User
模型:
class User extends Eloquent {
public function badges() {
return $this->belongsToMany('Badge', 'users_badges');
}
}
Badge
模型:
class Badge extends Eloquent {
public function users() {
return $this->belongsToMany('User', 'users_badges');
}
}
答案 0 :(得分:38)
将pivot
添加到模型中$hidden
属性的数组中。
class Badge extends Eloquent {
protected $hidden = ['pivot'];
public function users() {
return $this->belongsToMany('User', 'users_badges');
}
}
与您的User
型号相同
class User extends Eloquent {
protected $hidden = ['pivot'];
public function badges() {
return $this->belongsToMany('Badge', 'users_badges');
}
}
答案 1 :(得分:5)
或者您仍然可以按需隐藏枢纽 ...
$user = User::find(1);
$user->badges->makeHidden('pivot');
$badge = Badge::find(1);
$badge->users->makeHidden('pivot');
答案 2 :(得分:0)
您可以使用 json 列来完成。阅读此文档希望对您有所帮助。 Avoid Pivot Table and Use Json Column in Laravel