2016-09-22 169 views
0

User->post->likesLaravel社交網絡口才

我正在建立一個社交網絡。我有用戶的帖子。對於概念,我創建了一個表(喜歡): _______________________ |id | post_id | user_id | | | | |

我想告訴誰喜歡在每個帖子下方後的人。 所以我需要爲每個保存一行像 。 我的問題是雄辯和如何保存

$post = Post::find($request->postId); 
    $like = new Likes(); 
    $user = $request->user(); 
    $post->likes()->save($like, $user); 
    return 'done'; 

這個代碼設置USER_ID(喜歡TABEL)0

有沒有像概念更好的辦法?

+0

這個概念很好,這就是你如何處理這種關係。 – GiamPy

+0

如果你想只喜歡帖子,這很好,但如果將來你需要評論或照片等喜歡,你應該考慮使用多態關係https://laravel.com/docs/5.2/eloquent -relationships#多態,關係 – TheFallen

回答

2
在控制器中使用

此方法: 公共函數postLikePost(請求$請求) { $ POST_ID = $請求[ '帖子ID']; $ is_like = $ request ['isLike'] ==='true'?真假; $ update = false; $ post = Post :: find($ post_id); if(!$ post){ return null; } $ user = Auth :: user(); $ like = $ user-> likes() - > where('post_id',$ post_id) - > first();如果($ like){ $ likes = $ like-> likes; $ update = true; if($ liked == $ is_like) { $ like-> delete(); 返回null; } } else { $ like = new Like(); // die($ like); }

$like->likes = $is_like; 
    $like->user_id = $user->id; 
    $like->post_id = $post->id; 
    if($update){ 
     $like->update(); 
    } 
    else{ 
     $like->save(); 
    } 
    return null; 
    }