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

KONSEP, KELEBIHAN, KEKURANGAN CONTAINERIZATION BERSERTA TEKNOLOGI DAN STUDI KASUS CONTAINERIZATION

Mengapa Harus Belajar Cloud Computing ?

Setting Up VM and Domain