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.
0 Komentar