Advertisement

Responsive Advertisement

LARAVEL NOTE. CAK MALIK

kamu bisa parse tanggal lahir menjadi umur dengan menggunakan Carbon ya gaes ya.

caranya :

- 1. bikin method di Model mu.

egg. 

    public function age()
{
return Carbon::parse($this->attributes['tanggal_lahir'])->age;
}

- 2. tinggal gunakan di view mu

gunakan di view dengan gini $student->age() . atau kelola dulu sebelum pakai ya gaes ya



kamu bisa manipulasi key value di controller sebelum di lempar ke view ya gaes ya, manfaatin fungsi MAP laravel

egg. 
          
        'dormitories' => Dormitory::query()->get(['id', 'name', 'gender'])
->map(function ($asr) {
return [
'id' => $asr->id,
'name' => $asr->name . ' (' . $asr->gender . ')',
];
})->toArray(),

jangan lupa toArray() nya ya gaes ya. jadi, pasangannya map()->toArray()


Mainkan dulu di controller ya gaes, sebelum lempar datanya, biar di front ringan

egg. 
            'students' => Student::query()
->when($req->input('search'), function ($query, $search) {
$query->where('nama', 'like', "%{$search}%");
})
->paginate($perPage)
->withQueryString()
->through(function ($item) {
return [
'id' => $item->id,
'nama' => $item->nama,
'nis' => $item->nis,
'jenis_kelamin' => $item->jenis_kelamin,
'usia' => $item->age(),
'daerah' => $item->dormitory->name . $item->room,
'madin' => $item->madinEducation->name,
'formal' => $item->formalEducation->name,
];
}),

jadi yang di return, data yang diperlukan saja, tidak perlu semuanya, kalau perlu url nya juga di jadikan variabel di controller shingga di front tinggal pakai, biar ga pusing si front nya

contoh : 'showUrl'=>url('/student/'.$item->id.'/show')


kalau pakai query() / all() dia ga bisa paginate()

dia juga ga bisa map()

dia juga ga bisa through()

kalau mau pakai paginate() sebaiknya gandeng dengan through(). karena kalau paakai map di tidak bisa menampilkan total, current page url dll.




Posting Komentar

0 Komentar