User
とBadge
の2つのモデルがあります。ユーザーは複数のバッジを持つことができ、バッジは複数のユーザーに属することができます。 (ピボットテーブルを使用)
現在、必要なデータを取得していますが、さらに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');
}
}
モデルの$hidden
プロパティの配列にpivot
を追加します。
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');
}
}
または、引き続きオンデマンドでピボットを非表示にするこの方法で...
$user = User::find(1);
$user->badges->makeHidden('pivot');
$badge = Badge::find(1);
$badge->users->makeHidden('pivot');