Posts

Authorization

Image
Implementasi Relationship Antara Model User dan BlogPost 1. Saat ini di table blog_post kita sudah memiliki column user_id, namu tid model ya kita belum melakukan implementasi relationship. Sekarang kita akan mengimplementasikan relationship di model User dan BlogPost.  2. User has-many BlogPost dan BlogPost belongs-to User. Implemetasi nya nanti seperti gambar dibawah ini 3. Buka file app/Models/BlogPost.php, tambahkan code dibawah ini. Line 24 -28. 4. Buka file app/Models/User.php, tambahkan code dibawah ini. Line 44 - 48. 5. Buka file resources/views/posts/partials/post.blade.php, tambahkan code dibawah ini. Line 7 - 10. 6. Buka file resources/views/posts/show.blade.php, tambahkan code dibawah ini. Line 9 - 12.  7. Silahkan buka halaman http://localhost:8000/posts dan http://localhost:8000/posts/1. Implementasi Update Post Hanya Oleh User Yang Meng-Create Post Tersebut Menggunakan Laravel Gate 1. Buka file app/Providers/AuthServiceProvider.php, tambahkan code dibawah ini. L...

Multi domain setting

S etting Up Multi Domain Definisi Multi Domain Multi domain adalah menempatkan lebih dari satu domain pada satu akun hosting. Sebagian akun hosting memiliki fitur multi domain. Kelebihan dari multi domain adalah menghemat dan memaksimalkan kapasitas satu akun hosting. Kekurangannya, setiap domain tidak memiliki username dan password yang terpisah, sehingga pengelolaan tidak dapat didelegasikan ke pihak lain. Pembatasan space dilakukan terhadap akun hosting, bukan domain. Jadi beberapa domain dalam satu akun hosting berbagi space yang ada pada akun hosting tersebut. 1. Saat ini kita memiliki 2 website yang sudah terinstall di VM, yaitu PhpMyadmin dan Wordpress. 2. Saat ini, kita baru men-seting satu domain/subdomain yang dihubungkan dengan VM. 3. Pada real world project, kadang ada kasus yang memerlukan multi domain/subdomain dalam 1 VM.

Deleting Data

Image
  Delete Related Table Menggunakan Laravel Model Event 1. Buka file app/Models/BlogPost.php dan tambahkan code dibawah ini. Line 21 - 32. Delete Related Table Menggunakan Database Cascading 1. Cara lain untuk meng-handle masalah tersebut adalah dengan menggunakan cascade pada database level.  2. Buat migration baru php artisan make:migration AddCascadeDeleteToCommentsTable  3. Buka file database/migrations/xxxx_xx_xx_xxxxxx_add_cascade_delete_to_comments_tabl e.php dan ubah menjadi menjadi seperti ini. Line 9 - 38.  4. Jalan migration php artisan migrate 5. Buka file app/Models/BlogPost.php dan tambahkan code dibawah ini. Line 29 - 31. Model Soft Deleting 1. Buat migration baru php artisan make:migration AddSoftDeleteToBlogPostsTable 2. Buka file database/migrations/xxxx_xx_xx_xxxxxx_add_soft_delete_to_blog_posts_table.p hp dan ubah menjadi menjadi seperti ini. Line 17 dan 29 3. Jalan migration php artisan migrate 4. Buka file app/Models/Blog...

Setting Up VM and Domain

Image
  Membuat Folder Khusus Untuk Aplikasi  1. Catatan: server menggunakan OS Ubuntu 20.04 LTS  2. Untuk melihat posisi kita berada di folder mana, jalankan command ini pwd  3. Buat folder  - mkdir /usr/local/apps - Masuk ke folder - cd /usr/local/apps - Cek posisi folder  -  pwd Setting Up MySQL dan PhpMyadmin  1. Untuk men-setup MySQL dan PhpMyadmin, kita akan menggunakan docker-compose.  2. Buat folder untuk menyimpan docker volume mysql database /usr/local/apps/mysql-db. Jalankan command dibawah ini. 4. Jalankan docker compose docker-compose up -d  5. Pada browser buka http://MACHINE_VM_IP:8000 6. Masukan username dan password yang sesuai dengan settingan di docker-compose.yml. Setting Up Web Berbasis Wordpress 1. Sebelum melakukan setting up wordpress menggunakan docker compose, perlu melakukan beberapa hal dibawah ini:  - Stop docker compose → CTRL + c atau docker-compose down -v  - Hapus folder /usr/local/apps/mysql-db ...

Database Model Seeder

Image
  Database Model Seeder Menambahkan user_id ke table blog_posts  1. Menambahkan migration php artisan make:migration add_user_to_blog_posts_table 2. Buka file database/migrations/xxxx_xx_xx_xxxxxx_add_user_to_blog_posts_table.php, kemudian tambahkan code dibawah ini 3. Jalankan migration php artisan migrate 4. Setelah migration, maka column user_id akan menjadi NULL, silahkan isi dengan nilai ada di table users Refreshing Database 1. Kita perlu ubah dulu table migration database/migrations/xxxx_xx_xx_xxxxxx_add_user_to_blog_posts_table.php untuk memastikan user_id tidak NULLABLE. Lihat line 17-18.   2. Untuk me-refresh database, jalankan command dibawah ini php artisan migrate:refresh 3. Untuk mengisi kembali data-data tersebut kita akan menggunakan fitur seeder dari laravel. Untuk menjalankan fitur tersebut cukup dengan menjalankan command dibawah ini. php artisan db:seed Basic Database Seeder  1. Buka file database/seeders/DatabaseSeeder.php, ubah menjadi...

Run Docker in Production 2

Image
  Run Docker in Production 2 Membuat Virtual Mechine Untuk kali ini kita akan menyewa sebuah virtual machine dari linode, Linode adalah penyedia cloud yang menyediakan layanan Saas, SaaS merupakan singkatan dari “software as a service”. Istilah ini digunakan pada saat perusahaan memanfaatkan sistem cloud untuk mengirimkan software antarmuka ke user mereka, umumnya melalui web browser atau aplikasi mobile. Lanjut disini akan membuat server linode. Pertama create linode server Lalu Pilih Image dari OS yang diinginkan kita aka menggunakan Ubuntu versi 20.04, Lalu Pilih region , disini saya akan menggunakan server yang ada di singapura, Lalu setelah itu kita akan memilih berapa CPU yang akan digunakan, dalam hal ini kita akan memilih yang nanode 1 GB. Dan setelah itu setting linode label dan root password, setelah itu tinggal create saja linode servernya Setelah itu kita dialihkan kehalaman yand dimana tersedia informasi mengenai server linode yang telah dibuat Access Virtual Machine m...