Menggunakan Query Builder Laravel di Codeigniter

    


    Sebagai seorang web devoper, kita selalu mencari cara untuk "Bagaimana cara supaya ngoding kita semakin simple?" atau ketika anda melakukan migrasi dari Framework A ke Framework B. Sebagai contoh ketika anda terbiasa menggunakan Framework Laravel dan harus beralih ke Codeigniter. Tentu butuh penyesuaian, apalagi untuk anda yang belum pernah menggunakan Codeigniter pertama kali.

    Di postingan kali ini saya akan memberikan tutorial Cara menggunakan Eloquent, Query Builder Laravel di Codeigniter. Lah, emang bisa? Jawabannya Tentu bisa! bahkan untuk fitur Migrations nya pun bisa! Hmm.. menarik bukan? Langsung saja. Sebelum ke topik pembahasan, ada beberapa syarat yang harus anda semuanya penuhi, yaitu


  1. Folder Project Codeigniter 3 tentunya. Klik disini, untuk mengunduh project codeigniter yang baru, atau jika anda sudah memilikinya, anda bisa melewati tahap ini.
  2. Install Composer
  3. Lets do it.

Pertama, buka Project Codeigniter anda di teks editor kesayangan anda, disini saya menggunakan VS Code. Lalu buka file composer.json. Pada key "require", Ubah menjadi seperti ini


"require": {     "php": ">=5.3.7",     "illuminate/database": "8.33.1" },


Setelah itu simpan, dan buka terminal / CMD anda di direktori project codeigniter anda dan ketik perintah

composer install

Lalu tekan enter. semua depedencies yang kita butuhkan akan di install oleh composer


Setelah terinstal. kita lakukan konfigurasi terlebih dahulu. Buka file database.php yang berada di application/config/database.php. Tambahkan code berikut di baris paling bawah

use Illuminate\Database\Capsule\Manager as Capsule;

$capsule = new Capsule;

$capsule->addConnection([
    'driver'    => str_replace('mysqli', 'mysql', $db['default']['dbdriver']),
    'host'      => $db['default']['hostname'],
    'database'  => $db['default']['database'],
    'username'  => $db['default']['username'],
    'password'  => $db['default']['password'],
    'charset'   => $db['default']['char_set'],
    'collation' => $db['default']['dbcollat'],
    'prefix'    => $db['default']['dbprefix'],
]);

$capsule->setAsGlobal();

Sehingga terlihat seperti ini.



Selanjutnya kita coba!!. Tapi sebelum itu, buat database baru, disini saya membuat database dengan nama codeigniter3. Lalu buat sebuah sample data, anda bisa mengkopi script di bawah ini atau membuat nya sendiri 

CREATE DATABASE IF NOT EXISTS `codeigniter3` /*!40100 DEFAULT CHARACTER SET latin1 */;
USE `codeigniter3`;

-- Dumping structure for table codeigniter3.users
CREATE TABLE IF NOT EXISTS `users` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) DEFAULT NULL,
  `email` varchar(255) DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=latin1;

-- Dumping data for table codeigniter3.users: ~0 rows (approximately)
/*!40000 ALTER TABLE `users` DISABLE KEYS */;
REPLACE INTO `users` (`id`, `name`, `email`, `created_at`) VALUES
(1, 'Hasan M', 'hasan@mail.com', '2021-03-20 00:00:00'),
(2, 'Dayat M', 'dayat@mail.com', '2021-03-20 00:00:00'),
(3, 'Mardi Ishak', 'mardi@mail.com', '2021-03-20 00:00:00');
/*!40000 ALTER TABLE `users` ENABLE KEYS */;

Buka file Controller Welcome.php. yang berada di application/controllers/Welcome.php. Ubah method index() menjadi berikut baris kode berikut.

public function index()
{   
     $data['users'] = \Illuminate\Database\Capsule\Manager::table('users')->get();

     $this->load->view('welcome_message', $data);
}

Tapi sebelum itu, buka file autoload.php yang berada di application/config/autoload.php. Tambahkan database pada libraries, sehingga terlihat seperti ini.
$autoload['libraries'] = array('database');

Terakhir, Lalukan perubahan di welcome_message.php yang berada di application/views/welcome_message.php seperti berikut.


Dan hasilnya akan seperti ini!


Mungkin untuk penggunaan eloquent dan migrations nya nanti saya akan buatkan secara terpisah. Jika ada pertanyaan / trouble, silakan tulis di kolom komentar. Stay tune!