我正在建立一个社交网络。我有用户和帖子。对于喜欢的概念,我创建了一个表(喜欢):
_______________________
|id | post_id | user_id |
| | | |
我想向每个帖子下方的帖子展示喜欢帖子的人。 所以我需要为每个 Like 保存一行 。 我的问题是Eloquent以及如何保存 Like 行
$post = Post::find($request->postId);
$like = new Likes();
$user = $request->user();
$post->likes()->save($like, $user);
return 'done';
此代码设置user_id(喜欢tabel)0
对于Like Concept有更好的方法吗?
答案 0 :(得分:2)
使用此方法: public function postLikePost(Request $ request) { $ post_id = $ request [' postId']; $ is_like = $ request [' isLike'] ===' true' ?真假; $ update = false; $ post = Post :: find($ post_id); 如果(!$ POST){ return null; } $ user = Auth :: user(); $ like = $ user-> likes() - > where(' post_id',$ post_id) - > first(); 如果($等){ $ likes = $ like->喜欢; $ update = true; if($ likes == $ is_like) { $喜欢 - >删除(); return null; } 其他 { $ like = new Like(); //模具($等); }
$like->likes = $is_like;
$like->user_id = $user->id;
$like->post_id = $post->id;
if($update){
$like->update();
}
else{
$like->save();
}
return null;
}