Skip to main content

PHP LUMEN UPLOAD MEDIA

Halo semua kali ini aku mau lanjutin dari yang kemarin , yaitu mengupload sebuah media menggunakan php lumen , tanpa basa basi let's go

Membuat Table Profiles

masuk ke cmd pilih direktori lumen kalian lalu buat table tuliskan di cmd kalian codingan dibawah
php artisan make:migration create_profiles_table


setelah itu buka file profiles barusan masuk ke database/migration/"cari file profile table". lalu edit seperti dibawah ini.


jangan lupa di save
Setelah ini masuk ke cmd lagi lalu migrasi kan table nya
ketik
php artisan migrate


selesai.

Membuat Model File

Buatlah file baru dengan nama app/Models/Profile.php
lalu masukkan codingan dibawah ini.


selesai.

Membuat fungsi create dan update Profile

pertama masuk ke routes/web.php
tambahkan codingan pada line 36 seperti dibawah ini.


Selanjutnya buatlah file baru bernama ProfilesController.php pada app/Http/Controller.
isikan dengan codingan dibawah ini.

-----
<?php

namespace App\Http\Controllers;

use App\Models\Profile;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;

class ProfilesController extends Controller
{
    public function store(Request $request)
    {
        $input = $request->all();

        //validation
        $validationRules = [
            'first_name'=>'required|min:2',
            'last_name'=>'required|min:2',
            'summary'=>'required|min:10',
        ];
       
        $validator = \Validator::make($input, $validationRules);

        if($validator->fails()){
            return response()->json($validator->errors(),400);
        }
        //validation end
       
        //dibawah untuk mengecek profile dengan user_id terkait ada
        //kalo ada di update
        //kalo tidak ada di create
        $profile = Profile::where('user_id',Auth::user()->id)->first();

        if(!$profile){
            $profile = new Profile;
            $profile->user_id = Auth::user()->id;
        }
        $profile->first_name = $request->input('first_name');
        $profile->last_name = $request->input('last_name');
        $profile->summary = $request->input('summary');

        //jika ada image yang di upload
        if($request->hasFile('image')){
            $firstName = str_replace(' ', '_', $request->input('first_name'));
            $lastName = str_replace(' ', '_', $request->input('last_name'));

            $imageName = Auth::user()->id .'_'. $firstName .'_'. $lastName;
            $request->file('image')->move(storage_path('uploads/image_profile'), $imageName);

            //hapus image sebelummnya
            $current_image_path = storage_path('avatar').'/'.$profile->image;
            if(file_exists($current_image_path)){
                unlink($current_image_path);
            }
            $profile->image=$imageName;
        }
        //save profile
        $profile->save();
        return response()->json($profile,200);
    }
}
-----
Jangan lupa save
Test fungsi create pada postman seperti dibawah ini.


Selesai.

Membuat fungsi get profile

buka routes/web.php
isikan codingan ini.

.
Lalu buat fungsi show pada ProfilesController.php.


test fungsi get di postman

Selesai.

Membuat fungsi get image profiles

Tambahkan codingan router untuk image pada file web.php


Buka file ProfilesController.php tambahkan fungsi image seperti dibawah ini.


Test fungsi get image Profiles di postman

isikan url dengan salah seperti ini.


Lalu coba isikan url dengan benar seperti ini.
masukkan ke id yang mempunyai image.


Selesai.

Comments

Popular posts from this blog

Microservice

Hallo semuanya, saya sudah lama tidak update di blog ini hehe, pembahasan untuk kali ini yaitu Microservices, langsung saja saya akan jelaskan di bawah yaa, cekidot gan PENGENALAN Apa itu Microservice? Microservice adalah sebuah aplikasi yang terbagi menjadi beberapa projek kecil yang dalam masing-masing projek tersebut terdapat berbeda layanan yang saling terhubung dan saling melengkapi satu sama lain, perhatikan gambar di bawah ini. terlihat dari gambar di atas ibaratkan kotak oranye adalah server, nah dalam server tersebut terdapat hanya satu layanan, jika dibandingkan dengan  perhatikan gambar di bawah ini. Ibaratkan semua ini di dalam satu server, hanya dengan satu server terdapat banyak layanan sekaligus, terlihat lebih efisien jika dibandingkan dengan Microservice, namun apakah demikian? mari kita lihat perbandingan Microservice dan Monolithic Untuk yang Monolithic   - Jika aplikasi makin kompleks dan penggunanya makin banyak, kenai...

PHP LUMEN VALIDATION DAN ERROR HANDLING

Hay semua pada postingan kali ini aku akan memberikan bahasan dan tutorial ke kalian tentang PHP Lumen Validation dan Error Handling. Check this out. Pertama nyalakan dulu XAMPP kalian.  Kedua aktifkan localhost:8000 nya di cmd Beautify Response Pada Fungsi Read All 1. Tampilan sebelumnnya ketika memanggil di postman seperti ini "http://localhost:8000/momonga" seperti ini. 2. Pada gambar di atas belum ada pembagian halaman mari kita buat , buka controller kalian "MomongaController.php" dan buat responsenya seperti ini. lihat pada line 16-25 Hasilnya dapat terlihat pada line 2-8 3. Lihat next_page coba klik hasilnya akan mengubah halaman tersebut menjadi ke halaman 2.  Selesai. Validation Fungsi Create  Untuk membuat validasi pada fungsi create, mari kita ikuti langkah-langkah berikut ini: 1. Saat ini fungsi create memiliki beberapa parameter, diantaranya adalah:      - title      - content ...

PHP LUMEN RESOURCE RELATIONSHIP

Hai guys kali ini aku mau lanjutin yang kemarin langsung saja ini tutornya Membuat fungsi public read Pertama buka file web.php pada folder routes dan isikan codingan ini . Lalu buat folder baru bernama PublicController di isikan dengan file PostsController.php pathnya app/Http/Controllers/PublicController/PostsController.php lalu isikan codingan ini didalam file phpnya. ----- <?php namespace App\Http\Controllers\PublicController; use App\Models\Post; use App\Http\Controllers\Controller; use Illuminate\Http\Request; class PostsController extends Controller {     public function index(Request $request)     {         $posts = Post::with('user')->OrderBy("id","DESC")->paginate(10)->toArray();         $response = [             "total_count"=>$posts["total"],         ...