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($response200);

    }

 

    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

Postingan populer dari blog ini

Tutorial simple Web Service dengan PHP

Docker in Production

Tutorial Lumen PHP Framework | Routing, Middleware, dan Controller