我被困在我的Laravel项目中,无法解决问题。
解释
在我的应用程序中,有3个表:xCodes,Postings和Users
xCode有很多帖子 - 每个帖子都属于许多订阅用户,他们会收到有关更改的通知。
Model XCode.php
public function postings(){
return $this->hasMany('Posting');
}
模型Posting.php
public function subscribers(){
return $this->belongsToMany('User');
}
public function xcode(){
return $this->belongsTo('XCode','x_code_id');
}
模型User.php
public function subscriptions(){
return $this->belongsToMany('Posting');
}
问题
如何管理显示当前用户为每个xCode订阅的过帐数量?像
$xcode->postings->subscribers->where(Auth::user()->id)->count()
在这里不起作用......
提前致谢!
答案 0 :(得分:0)
我找到的一个可能的解决方案:
public function count_subscribers($user_id){
//get a list of all posting-ids associated to the User
$posting_ids = DB::table("posting_user")->where('user_id',$user_id)->lists('posting_id');
//get all Postings where current xCode is associated with
return DB::table('postings')->whereIn('id',$posting_ids)->where('x_code_id',$this->id)->count();
}
我不知道这是否是解决这个问题最优雅的方法,但它有效:)