从多态关系中获取数据

时间:2016-09-19 02:46:37

标签: laravel laravel-5.2

投票表

struct Monster{
   var id: Int
}
var arr : Array<Monster>= []

for i in 0..<5{
   let monster = Monster(id: i)
   arr.append(monster)
}

for m in arr{
   print(m.id)
}
arr.sort { (monsterA, monsterB) -> Bool in
   return monsterA.id > monsterB.id
}

for m in arr{
   print(m.id)
}

回答和评论模型

id  user id  vote  votable_id  votable_type 
1      4        5     1           App\Comment
2      2        4     4           App\Answer
....

投票型号

  public function votes()
    {
         return $this->morphOne('App\Vote', 'votable');
    }

   public function user()
    {
        return $this->belongsTo('App\User','user_id','id'); 
    }

如何获取有关登录用户从用户模型中投票的答案和评论。

public function votable()
     {
         return $this->morphTo();
      }
 public function user()
     {
         return $this->belongsTo('App\User','user_id','id'); 
     }

1 个答案:

答案 0 :(得分:1)

您想要支持投票模型中存在的变形模型中的项目,因此您应该使用“投票”关系查询变形模型 whereHas 条件:

$result = Answer::whereHas('votes', function($query) {
    $query->where('user_id', Auth::user()->id);
})->get();

$result = Comment::whereHas('votes', function($query) {
    $query->where('user_id', Auth::user()->id);
})->get();