File tree Expand file tree Collapse file tree 4 files changed +25
-1
lines changed Expand file tree Collapse file tree 4 files changed +25
-1
lines changed Original file line number Diff line number Diff line change 55use App \Http \Requests \Api \PostRequest ;
66use App \Http \Resources \PostResource ;
77use App \Http \Resources \PostResources ;
8+ use App \Http \Resources \UserResource ;
89use App \Post ;
910use App \Http \Controllers \Controller ;
11+ use App \User ;
1012
1113class PostController extends Controller
1214{
@@ -16,13 +18,24 @@ class PostController extends Controller
1618 public function index ()
1719 {
1820 $ posts = Post::with ('author ' )
19- ->withCount ('comments ' )
2021 ->latest ()
2122 ->paginate (20 );
2223
2324 return new PostResources ($ posts );
2425 }
2526
27+ /**
28+ * @param \App\User $user
29+ *
30+ * @return \App\Http\Resources\PostResources
31+ */
32+ public function userPosts (User $ user )
33+ {
34+ $ user ->load ('posts.author ' );
35+
36+ return new UserResource ($ user );
37+ }
38+
2639 /**
2740 * @param \App\Http\Requests\Api\PostRequest $request
2841 *
Original file line number Diff line number Diff line change 66
77class UserResource extends JsonResource
88{
9+ public static $ wrap = false ;
10+
911 /**
1012 * Transform the resource into an array.
1113 *
@@ -22,6 +24,7 @@ public function toArray($request)
2224 'postsCount ' => $ this ->posts ()->count (),
2325 'followersCount ' => $ this ->followers ()->count (),
2426 'followingCount ' => $ this ->followings ()->count (),
27+ 'posts ' => new PostResources ($ this ->whenLoaded ('posts ' ))
2528 ];
2629 }
2730}
Original file line number Diff line number Diff line change @@ -16,6 +16,13 @@ class Post extends Model
1616 'text ' ,
1717 ];
1818
19+ /**
20+ * @var array
21+ */
22+ protected $ withCount = [
23+ 'comments '
24+ ];
25+
1926 /**
2027 * @return \Illuminate\Database\Eloquent\Relations\HasMany
2128 */
Original file line number Diff line number Diff line change 2929 ->name ('verification.resend ' );
3030
3131 Route::get ('posts ' , 'PostController@index ' );
32+ Route::get ('posts/user/{user} ' , 'PostController@userPosts ' );
3233 Route::post ('posts ' , 'PostController@store ' );
3334
3435 Route::get ('posts/{id}/comments ' , 'CommentController@index ' );
You can’t perform that action at this time.
0 commit comments