2016-09-22 22 views
0

User->post->likes소셜 네트워크를위한 Eloquent

나는 소셜 네트워크를 구축 중입니다. 나는 사용자입니다.게시물입니다. 나는 각 게시물 아래의 포스트를 좋아하는 사람들을 보여주고 싶은 _______________________ |id | post_id | user_id | | | | |

: 개념과 같은 위해 나는 테이블 (좋아요)를 만들었습니다. 그래서 각 행을 저장해야합니다. 처럼 처럼 말입니다. 내 문제는 웅변이며 어떻게 user_id를 설정

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

처럼이 코드를 저장하는 0

처럼 개념을위한 더 나은 방법이 (tabel 좋아)는? 컨트롤러의 사용

+0

개념이 훌륭하기 때문에 이러한 관계를 처리 할 수 ​​있습니다. – GiamPy

+0

게시물 만 좋아하시겠습니까? 괜찮습니다.하지만 나중에 메모, 사진 등을 좋아할 필요가있는 경우 다형성 관계 사용을 고려해야합니다. https://laravel.com/docs/5.2/eloquent -relationships # 다형성 관계 – TheFallen

답변

2

이 방법 공용 기능 postLikePost (요청 $ 요청) $ {= $ post_id를 요청 [ 'postId']; $ is_like = $ request [ 'isLike'] === 'true'? 허위 사실; $ update = false; $ post = 게시물 :: 찾기 ($ post_id); if (! $ post) { return null; } $ user = Auth :: user(); $ like = $ user-> likes() -> 여기서 ('post_id', $ post_id) -> first(); if ($ like) { $ liked = $ like-> likes; $ update = true; if ($ 좋아 == $ is_like) { $ like-> delete(); return null; } } else { $ like = new 좋아요(); // 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; 
    }