Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit de739d7

Browse files
committed
post
1 parent ca803f0 commit de739d7

File tree

2 files changed

+25
-25
lines changed

2 files changed

+25
-25
lines changed

‎app/Http/Controllers/PostController.php

Lines changed: 16 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -5,36 +5,22 @@
55
use Illuminate\Http\Request;
66
use App\Models\Post;
77
use Illuminate\Support\Facades\Validator;
8+
use App\Http\Resources\Post as PostResource;
89

910
class PostController extends Controller
1011
{
1112
/**
12-
* Display a listing of the resource.
13+
* List of posts.
1314
*
1415
* @return \Illuminate\Http\JsonResponse
1516
*/
1617
public function index()
1718
{
18-
$posts = Post::all()->load('user');
19-
$result = [];
20-
foreach ($posts as $post) {
21-
array_push($result, [
22-
'id' => $post->id,
23-
'user_id' => $post->user_id,
24-
'user_name' => $post->user->name,
25-
'title' => $post->title,
26-
'description' => $post->description,
27-
'created_at' => $post->created_at,
28-
'updated_at' => $post->updated_at,
29-
'action' => $post->id,
30-
]);
31-
}
32-
33-
return response()->json($result);
19+
return PostResource::collection(Post::all());
3420
}
3521

3622
/**
37-
* Store a newly created resource in storage.
23+
* Store a newly created post in storage.
3824
*
3925
* @param \Illuminate\Http\Request $request
4026
* @return \Illuminate\Http\Response
@@ -52,19 +38,22 @@ public function store(Request $request)
5238
'description.regex' => 'No HTML tags are allowed.'
5339
]);
5440
if ($validator->fails()) {
55-
return response()->json(array("message"=> "The given data was invalid.", "errors" => $validator->getMessageBag()->getMessages()), 422);
41+
return response()->json([
42+
"message"=> "The given data was invalid.",
43+
"errors" => $validator->getMessageBag()->getMessages()
44+
], 422);
5645
}
5746
$post = Post::create([
5847
'user_id' => $request->user_id,
5948
'title' => $request->title,
6049
'description' => $request->description
6150
]);;
6251

63-
return response()->json($post->load('user'));
52+
return newPostResource($post);
6453
}
6554

6655
/**
67-
* Update the specified resource in storage.
56+
* Update the specified post in storage.
6857
*
6958
* @param \Illuminate\Http\Request $request
7059
* @param Post $post
@@ -83,19 +72,22 @@ public function update(Request $request, Post $post)
8372
'description.regex' => 'No HTML tags are allowed.'
8473
]);
8574
if ($validator->fails()) {
86-
return response()->json(array("message"=> "The given data was invalid.", "errors" => $validator->getMessageBag()->getMessages()), 422);
75+
return response()->json([
76+
"message"=> "The given data was invalid.",
77+
"errors" => $validator->getMessageBag()->getMessages()
78+
], 422);
8779
}
8880
$post->update([
8981
'user_id' => $request->user_id,
9082
'title' => $request->title,
9183
'description' => $request->description
9284
]);;
9385

94-
return response()->json($post->load('user'));
86+
return newPostResource($post);
9587
}
9688

9789
/**
98-
* Remove the specified resource from storage.
90+
* Remove the specified post from storage.
9991
*
10092
* @param Post $post
10193
* @return \Illuminate\Http\Response

‎app/Http/Resources/Post.php

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,14 @@ class Post extends JsonResource
1414
*/
1515
public function toArray($request)
1616
{
17-
return parent::toArray($request);
17+
return [
18+
'id' => $this->id,
19+
'title' => $this->title,
20+
'user' => $this->user,
21+
'description' => $this->description,
22+
'created_at' => $this->created_at,
23+
'updated_at' => $this->updated_at,
24+
'action' => $this->id,
25+
];
1826
}
1927
}

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /