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',…])