Membuat data product laravel 11 api

RoisDev - Feb 19 - - Dev Community

Product Controller

<?php

namespace App\Http\Controllers;

use App\Http\Requests\ProductRequest;
use App\Http\Resources\ProductResource;
use App\Models\Products;
use Illuminate\Http\Request;

class ProductController extends Controller
{
    /**
     * Display a listing of the resource.
     */
    public function index()
    {
        $products = Products::all();
        return new ProductResource(true, 'Data product', $products);
    }

    /**
     * Store a newly created resource in storage.
     */
    public function store(ProductRequest $request)
    {
        $data = $request->validated();
        if ($request->hasFile('image')) {
            $image = $request->file('image');
            $image->move(public_path('images/'), $image->getClientOriginalName());
            $data['image'] = asset('images/' . $image->getClientOriginalName());
        } else {
            $data['image'] = '-';
        }
        $product = Products::create($data);

        return new ProductResource(true, 'Berhasil Menyimpan Product', $product);
    }

    /**
     * Display the specified resource.
     */
    public function show(Products $product)
    {
        return new ProductResource(true, 'Data product', $product);
    }

    /**
     * Update the specified resource in storage.
     */
    public function update(Request $request, Products $product)
    {
        $data = $request->all();
        if ($request->hasFile('image')) {
            $image = $request->file('image');
            $path = $image->move(public_path('/images'), $image->getClientOriginalName());
            $data['image'] = $path;
        } else {
            $data['image'] = '-';
        }
        $product->update($data);
        return new ProductResource(true, 'Product Berhasil Di update', $product);
    }

    /**
     * Remove the specified resource from storage.
     */
    public function destroy(Products $product)
    {
        $product->delete();
        return new ProductResource(true, 'Product Berhasil Di Hapus', $product);
    }
}
__
Enter fullscreen mode Exit fullscreen mode

Membuat halaman resource dengan code product

<?php

namespace App\Http\Resources;

use Illuminate\Http\Request;
use Illuminate\Http\Resources\Json\JsonResource;

class ProductResource extends JsonResource
{

    public $status;
    public $message;
    public $resource;

    public function __construct($status,$message ,$resource)
    {
         parent:: __construct($resource);
         $this->status=$status;
         $this->message=$message;
    }
    /**
     * 
     * Transform the resource into an array.
     *
     * @return array<string, mixed>
     */
    public function toArray(Request $request): array
    {
        return [
            'status' => $this->status,
            'message'=> $this->message,
            'data' => $this->resource
        ];
    }
}

Enter fullscreen mode Exit fullscreen mode
. . . . .