~ We are changing the world with technology. ~

Matt Mullenweg

Manipulasi Data Dengan Tinker di Laravel

Manipulasi Data Dengan Tinker di Laravel

12496 Dilihat

Pada kesempatan kali ini kita akan membahas tentang sebuah fitur dari Laravel yang berguna untuk mengakses / berinteraksi dengan data pada aplikasi kita dengan cara cepat. Untuk melakukannya kita dapat menggunakan Laravel artisan's built-in php artisan tinker. Laravel artisan's tinker adalah REPL (Read Eval Print Loop) sebuah bahasa shell yang interaktif, menggunakan single user input, mengolahnya dan mengembalikan nilai berdasarkan input yang diberikan kepada user.

Otentikasi Menggunakan Google Two Factor di Laravel

Menggunakan Tinker

Pada penerapan yang sebenarnya, kita akan berinteraksi dengan code berikut untuk memanipulasi database:

//Menghitung total data user
App\User::count();
​
//Mengambil satu data dengan email tertentu
App\User::where('email', '[email protected])->first();
​
//Mengakses relasi dari user
$user = App\User::with('posts')->first();
$user->posts;

Dengan php artisan tinker, kita dapat mengimplementasikan code diatas dengan cara cepat. Tinker dibangun dengan PsySH, yang memungkinkan kita untuk berinteraksi dengan aplikasi, menganalisa data dengan dd() dan mematikan fungsi dengan die() kapanpun yang kita inginkan.

Sebelum mengugnakan tinker, langkah pertama yang harus kita lakukan adalah membuat sebuah project baru dengan berisi kumpulan data yang nantinya akan kita gunakan untuk berinteraksi dengan tinker. Maka install Laravel terlebih dahulu:

composer create-project --prefer-dist laravel/laravel tinker

Setelah proses instalasi selesai, kita harus membuat sebuah database dan setup migrations. Pada artikel kali ini kita akan memanfaatkan migration bawaan Laravel. Jadi kita akan mengkonfigurasi file .env untuk menghubungkan ke database yang telah kita buat.

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=daengweb
DB_USERNAME=root
DB_PASSWORD=toor

Default migration dari Laravel meliputi table users dan table password_resets, kita akan memanfaatkan ini maka jalankan command:

php artisan migrate

Karena kita membutuhkan sample data guna menunjang experiment dalam menggunakan tinker, maka kita akan membuat seeder untuk meng-generate random data pada table users. Secara default Laravel telah menyedian sebuah Model Factory yang dapat digunakan untuk membuat seed kedalam database. Maka mari kita mulai untuk menggunakan tinker pada aplikasi kita.

Pada command line, ketikkan command berikut:

php artisan tinker

Command diatas akan membuka sebuah repl untuk berinteraksi dengan aplikasi Laravel anda. Untuk membuat seed data kita dapat menggunakan model factory pada tinker interface, jalankan command berikut:

factory(App\User::class, 10)->create();

Secara otomatis Laravel telah meng-generate 10 data baru yang disimpan kedalam table users, collection data yang di-generate telah ditampilkan pada command line anda. Kita dapat mengecek data tersebut dengan menggunakan command berikut:

App\User::all();

Untuk mendapatkan total user yang terdapat didalam database, kita dapat menggunakan count pada model User.

App\User::count();

Membuat & Menghapus Data User

Masih menggunakan tinker, kita dapat membuat data baru kedalam table user (baca: karena contoh kali ini kita bekerja menggunakan model User). Untuk membuatnya tidak jauh berbeda ketika anda menggunakan Eloquent pada controller, so ketikkan command berikut:

$user = new App\User;
$user->name = "Anugrah Sandi";
$user->email = "[email protected]";
$user->password = bcrypt('secret');
$user->save();

Data baru telah disimpan dan ditampung sementara kedalam variable user, so anda dapat mengetikkan $user kemudian tekan enter maka data tersebut akan ditampilkan seperti berikut:

Selain membuat data baru, kita juga bisa menghapus data menggunakan tinker. Kita hanya perlu melakukan hal berikut:

$user = App\User::find(1);
$user->delete();

Kesimpulan

Laravel Tinker adalah sebuah tool yang dapat memudahkan kita untuk berinteraksi dengan aplikasi kita tanpa harus mengakses local server. Anda dapat mengexplore lebih banyak lagi untuk berinteraksi dengan aplikasi anda menggunakan tinker, misal: mengakses table yang berelasi. Anda cukup menuliskan code anda layaknya anda bekerja pada controller misalnya.

Full Stack Developer & Remote Worker salah satu perusahaan asal Australia. Senang dengan teknologi baru. Laravel addict yang tidak fanatik. Merekam jejak dengan menulis

Aplikasi E-Commerce Laravel 6 #20: Auto Upload Produk Marketplace Laravel

Aplikasi E-Commerce Laravel 6 #20: Auto...

Dewasa ini, marketplace menjadi platform untuk jual-beli yang banyak digemari baik bagi penjual maupun pembeli karena banyaknya promo yang diberikan oleh platform tersebut. Sehingga, data produk biasa...

Aplikasi E-Commerce Laravel 6 #19: Fitur Ongkos Kirim Laravel

Aplikasi E-Commerce Laravel 6 #19: Fitur...

Sejak pertama kali serial Membuat Aplikasi E-Commerce Laravel 6 di-release, ada banyak permintaan untuk menerapkan fitur ongkos kirim, namun kendalanya, tidak satupun yang memiliki license ongkos kiri...

Cara Membuat Sistem Komentar Dengan Laravel 7 Laravel

Cara Membuat Sistem Komentar Dengan Lara...

Membangun sebuah aplikasi yang membutuhkan feedback dari penggunanya, seperti blog, e-commerce dan lain sebagainya membutuhkan sistem komentar untuk saling interaksi antara pemilik dan pengguna atau a...

Komentar