我目前正在尝试在我的社交laravel项目中实现一个喜欢的功能,并且我正在使用这种设计。 like表是User和Post表的枢纽,是多对多关系。
public function likePost(Post $post)
{
Auth::user()->likes()->attach($post->id);
return response (post::with('user','likes','comments.user')-
>orderBy('created_at','DESC')->get());
}
}
/**
* Unfavorite a particular post
*
* @param Post $post
* @return Response
*/
public function unlikePost(Post $post)
{
Auth::user()->likes()->detach($post->id);
return post::with('user','likes','comments.user')-
>orderBy('created_at','DESC')->get();
}
有LikeController的代码
在用户模型中定义了关系之后,我创建了一种方法来检查帖子是否在我的帖子模型中被点赞
public function liked()
{
return (bool) Like::where('user_id', Auth::id())
->where('post_id', $this->id)
->first();
}
有邮政模型的代码。这应该检查帖子是否被喜欢。
所以我还设置了一个vue组件,它带有两个道具
<like :post={{ $post->id }}
:favorited={{ post.liked ? 'true' : 'false' }}>
</like>
所以我现在的主要问题是我将like作为子组件使用,如何在Vue实例上调用liked()方法,如果它是刀片的话
<like :post={{ $post->id }}
:favorited={{ $post->liked() ? 'true' : 'false' }}>
</like>
我该如何使用vue?