PHP LUMEN RESOURCE RELATIONSHIP
PHP LUMEN RESOURCE
RELATIONSHIP
1.
Endpoint
Untuk Public User
Untuk public user bisa melakukan Read All
dan Read Detail. Untuk mengakomodir kebutuhan ini kita akan membuat routes dan
controller baru.
Method
(HTTP Verbs) |
Endpoint |
Description |
GET |
/public/posts |
File Controller:
app/Http/Controllers/Public Controller/PostsController. php Function: index |
GET |
/public/post/{postID} |
File Controller:
app/Http/Controllers/Public Controller/PostsController. php Function: show |
2.
Menambahkan
Fungsi Public Read
Untuk menambahkan fungsi public read all,
mari kita ikuti langkah-langkah berikut ini:
1)
Buka file routes/web.php,
tambahkan code dibawah ini:
$router->get('public/posts', 'Pub\PostsController@index');
$router->get('public/posts/{id}', 'Pub\PostsController@show');
2)
Buat file baru dengan
nama app/Http/Controllers/PublicController/PostsController.php, kemudian tambahkan code di bawah ini:
<?php
namespace App\Http\Controllers\Pub;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Post;
class PostsController extends Controller
{
//
public function index()
{
$posts = Post::with(['user' => function($query){
$query->select('id', 'name');
}])->OrderBy('id', 'ASC')->paginate(10)->toArray();
$response = [
'total_count' => $posts['total'],
'limit' => $posts['per_page'],
'pagination' => [
'next_page' => $posts['next_page_url'],
'current_page' => $posts['current_page']
],
'data' => $posts['data']
];
return response()->json($response, 200);
}
public function show($id)
{
// $post = Post::with('user', 'comment')->find($id);
$post = Post::with(['user' => function($query){
$query->select('id', 'name');
}])->find($id);
if(!$post){
abort(404);
}
return response()->json($post,200);
}
}
3)
Buka file app/Models/Post.php, tambahkan
code dibawah ini sebelum penutup
Class:
public function user()
{
return $this->belongsTo('App\User');
}
4)
Buka file app/Models/User.php, tambahkan
code dibawah ini sebelum penutup
Class:
public function posts()
{
return $this->hasMany('App\Post');
}
5) Buka url http://localhost:8000/public/posts?page=1 di postman:
6)
Buka url http://localhost:8000/public/post/2 di postman:
Komentar
Posting Komentar