Php Laravel belongsToMany排除透视表
我有两种型号,Php Laravel belongsToMany排除透视表,php,laravel,orm,eloquent,Php,Laravel,Orm,Eloquent,我有两种型号,User和Badge。一个用户可以有多个徽章,并且一个徽章可以属于多个用户。(使用数据透视表) 目前,我正在获取所需的数据,但另外,我正在获取pivot表。我如何排除这个 以下是用户模型: class User extends Eloquent { public function badges() { return $this->belongsToMany('Badge', 'users_badges'); } } class Badg
User
和Badge
。一个用户可以有多个徽章,并且一个徽章可以属于多个用户。(使用数据透视表)
目前,我正在获取所需的数据,但另外,我正在获取pivot
表。我如何排除这个
以下是用户
模型:
class User extends Eloquent {
public function badges() {
return $this->belongsToMany('Badge', 'users_badges');
}
}
class Badge extends Eloquent {
public function users() {
return $this->belongsToMany('User', 'users_badges');
}
}
以及徽章
型号:
class User extends Eloquent {
public function badges() {
return $this->belongsToMany('Badge', 'users_badges');
}
}
class Badge extends Eloquent {
public function users() {
return $this->belongsToMany('User', 'users_badges');
}
}
将
pivot
添加到模型中的$hidden
属性数组中
与您的用户
型号相同
class User extends Eloquent {
protected $hidden = ['pivot'];
public function badges() {
return $this->belongsToMany('Badge', 'users_badges');
}
}
或者您仍然可以通过这种方式按需隐藏pivot
$user = User::find(1);
$user->badges->makeHidden('pivot');
$badge = Badge::find(1);
$badge->users->makeHidden('pivot');
您可以通过使用json列来实现这一点。阅读此文档,希望它能帮助您。
@challet是的,退房。向下滚动一点,您将发现一个如何动态隐藏属性的示例。
makeHidden
和makeVisible
也接受数组:makeHidden(['pivot',id',…])
或makeVisible(['pivot',id',…])