Assalamualaikum warahmatullahi wabarakatuh 👋

Tau nggak sih kenapa barisan kode sederhana seperti ini bisa mengeluarkan output dengan berbagai cara?

$user = \App\Models\User::inRandomOrder()->first();

Dengan keluaran sebagai array, bisa…

$user['name']; // output: John

Dengan keluaran sebagai object, bisa juga…

$user->; // output: John

Jawabannya adalah karena ada suatu class yang namanya Fluent. Class ini secara ajaib melakukan mutasi kepada data agar bisa diakses dalam berbagai metode. Salah duanya adalah seperti yang sudah penulis jabarkan di atas.

Sebelum penulis berikan berbagai contoh penggunaannya, mari kita kenalan dengan class Fluent ini.

use Illuminate\Support\Fluent;

$attributes = ['name' => 'Reza'];
$data = new Fluent($attributes);

Selanjutnya adalah ada berbagai metode yang bisa dilakukan oleh class Fluent ini. Penulis langsung jabarkan melalui contoh satu per satu ya.


$data->get('name', 'Nurfachmi');

Kode di atas akan mengembalikan nilai dari name atau Nurfachmi jika name belum di-set nilainya.


$data->getAttributes();

Kode di atas akan mengembalikan seluruh atribut yang sudah di-set, termasuk yang baru dibuat, misalnya:

$data->last_name = "Nurfachmi";

print_r($data->getAttributes());
/***
Output:
Array ( [name] => Reza [last_name] => Nurfachmi )
***/

$data->toArray();

Kode di atas akan mengembalikan data sebagai array.


$data->toJson();

Kode di atas akan mengembalikan data sebagai json.


Fluent adalah sebuah utiliti class yang disediakan oleh Laravel sendiri agar kita dapat secara luwes mengolah data.