Database merupakan hal yang utama agar penyimpanan dan pengambialan data lebih mudah. Demikian juga pengerjaan projek tim memunkinkan mengubah dan membagikan skema database aplikasi secara mudah.
Baik pertama isi dari artikel ini adalah kita akan membuat service menggunakan PHP Lumen yang bisa melakukan query ke Database. Tahpan dari praktikumnya antara lain:
- Membuat koneksi ke database
- Membuat database migration dan query ke database
- Menjalankan database migration
Membuat koneksi ke database
Sebelumnya kita harus sudah install Lumen, lalu untuk melakukan setting database pertama kita peru edit direktori Lumen, mari kita ikuti langkah-langkah dibawah ini:
1. Edit file bootstrap/app.php, uncomment:
$app->withFacades();
2. Buka file .env. Ubah settingan dibawah ini sesuaikan dengan kebutuhan
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=lumen_service_app3. Create database dengan nama lumen_service_app, sesuai dengan settingan .env file.
Membuat Database Migration dan Query ke Database
Setelah membuat koneksi Database selanjutnya kita akan migrasi Database. Database migration digunakan untuk melakukan DDL pada SQL database dengan
menggunakan code PHP. Untuk membuat database migration, mari ikuti langkah-langkah dibawah ini:
1. Pertama kita akan membuat table posts. Untuk membuat table posts jalankan script dibawah ini
php artisan make:migration create_users_table
2. Setelah tahap di atas berhasil. Migration tersebut akan mebuat file di folder
database/migrations/2020_10_22_030749_create_posts_table. Nama file nya akan
berbeda-beda, tapi patternya sama, yakni:
[tahun]_[bulan]_[tanggal]_[randon_number]_create_posts_table.php
3. Open file
database/migrations/[tahun]_[bulan]_[tanggal]_[randon_number]_create_posts_table.php, kemudian edit function up seperti code dibawah ini (lihat line 19 - 22).
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class PostTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('posts', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('title');
$table->string('category');
$table->text('description');
$table->enum ('status', array('public','link','privacy'))->default('public');
$table->integer('user_id')->index('user_id_foreign');
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('posts');
}
}
Menjalankan Database Migration
Untuk mengubah code migration diatas ke dalam bentuk tabel di SQL database,
jalankan script dibawah ini.
Untuk pertama kali melakukan migration, kita akan dibuatkan satu table dengan nama migrations. Table ini digunakan Lumen untuk mencatat file migration mana saja yang sudah dijalankan.
Jika sudah berhasil, maka ditabase kita akan ada dua table, dengan nama:
Membut Model
Model
digunakan untuk melakukan koneksi dan query ke Database. Untuk membuat model,
mari ikuti langkah-langkah dibawah ini:
1. Untuk memudahkan dalam penempatan code, buat folder
app/Models
2. Buat file app/Models/Post.php, code nya seperti ini
1.
<?php
2.
3.
namespace App\Models;
4.
5.
use Illuminate\Database\Eloquent\Model;
6.
7.
class Post extends Model
8.
{
9.
// define coloum name
10. protected $fillable = array ('title', 'category', 'description', 'status','user_id');
11.
12. }
3. Buat
file controller pada direktori app/Http/Controllers dengan nama PostsController.php,
code nya seperti ini.
1.
<?php
2.
3.
namespace App\Http\Controllers;
4.
5.
use App\Models\Post;
6.
use Illuminate\Http\Request;
7.
8.
class PostsController extends Controller
9.
{
10. public function index()
11. {
12. $posts = Post::OrderBy("id", "DESC")->paginate(10);
13.
14. $outPut = [
15. "message" => "Posts",
16. "results" => $posts
17. ];
18.
19. return response()->json($posts, 200);
20. }
21. }
4. Buka file routes/web.php, tambahkan code dibawah ini.
5. Silahkan Insert data ke table posts secara manual di phpMyAdmin, kemudian buka kembali URL diatas
6. Sebelumnya Anda koneksikan terlebih dahulu Lumen, lalu Buka buka browser dan masukkan alamat url http://localhost:8000/posts, maka tampilanya seperti ini.
Sampai disini anda telah berhasil membuat koneksi database SQL phpMyAdmin dengan projek Lumen dan membuat implementasi sederhana web api.
0 komentar:
Posting Komentar