【发布时间】:2016-07-31 16:39:32
【问题描述】:
我需要检查用户是否喜欢该帖子并且不再喜欢它。问题是,当一个用户喜欢这篇文章时,我的代码不能让另一个用户喜欢它。我不知道为什么。
控制器:
$posts = Post::orderBy('created_at', 'desc')->paginate(10);
foreach($posts as $p){
foreach ($p->like as $like){
$like = Like::where('user_id', '=', Auth::user()->id)->get();
}
}
Post.php:
public function user(){
return $this->belongsTo('App\User');
}
public function like()
{
return $this->hasMany('App\Like');
}
点赞.php:
public function user()
{
return $this->belongsTo('App\User');
}
public function post()
{
return $this->belongsTo('App\Post');
}
用户.php:
public function post(){
return $this->hasMany('App\Post');
}
public function like(){
return $this->hasMany('App\Like');
}
HTML
@if($like)
<i class="fa fa-thumbs-o-up liked pull-right" aria-hidden="true"></i>
@else
<a href="/like/{{$p->id}}">
<i class="fa fa-thumbs-o-up likeBtn pull-right" aria-hidden="true"></i></a>
@endif
【问题讨论】:
-
您实际上想用控制器中的代码实现什么。你的 $like 变量似乎被覆盖了
-
我有“喜欢”表,属于“user_id”,“post_id”,我想检查“user_id”是否与“post_id”在同一行,然后不要让喜欢的帖子。
-
如果他/她已经喜欢了帖子,您想限制用户喜欢帖子。对吗?
-
是的,没错! :D
-
那么为什么要嵌套循环呢?使用循环是否有任何特定目的。我的意思是你可以简单地通过使用 post_id 和 user_id 来完成。