Memahami Touching Timestamps dalam Laravel
Dalam artikel ini kita akan membahas hal yang mungkin pernah Anda lakukan yang itu bisa dilakukan dengan mudah hanya dengan 1 baris kode.
Dalam artikel ini kita akan membahas hal yang mungkin pernah Anda lakukan yang itu bisa dilakukan dengan mudah hanya dengan 1 baris kode.
Touching
Ada kalanya kita ingin update data, tetapi hanya untuk field updated_at nya saja, bisa jadi butuh karena untuk pengurutan.
Jadi dari pada kita lakukan update seperti biasanya.
$user->update(['updated_at' => now()]);
Maka kita bisa ganti dengan cara touch seperti
$user->touch();
Maka dia akan melakukan hal yang sama dengan yang di atas.
Touching Parent Timestamps
Ketika kita berbicara tentang forum, biasa nya semua thread akan di order dari kapan thread itu dibalas. Mungkin ketika Anda ingin melakukan hal itu bisa dengan cara:
$thread = Thread::find(5);
$thread->update(['updated_at' => now()]);
$thread->comments()->create([
// ...
]);
Dan harusnya, ketika ada komentar baru, maka thread juga pasti di perbarui. Namun, jika Anda bisa membuat lebih simpel, mengapa harus seperti itu.
Oleh karena itu, kita bisa membuat property $touches sebenarnya di dalam model komentar nya seperti:
class Comment extends Model
{
/**
* All of the relationships to be touched.
*
* @var array
*/
protected $touches = ['thread'];
/**
* Get the thread that the comment belongs to.
*/
public function thread()
{
return $this->belongsTo(Thread::class);
}
}
Jadi harusnya, jika Ada komentar baru di dalam thread tersebut, harusnya untuk field updated_at akan diperbarui juga.
Dan pastinya, untuk menampilkan thread sudah pasti Anda menggunakan order dari updated_at seperti:
Thread::query()->latest('updated_at')->get();
Sampai sini dulu artikel nya, see you next time.
Irsyad A. Panjaitan
Let's start living like no one can help us in any event, so that when we are helped in certain times, it becomes a plus in itself.
Artikel yang Terkait
- Belajar Cache Flexible di Laravel
Irsyad A. Panjaitan
- Membuat Fitur Multi Bahasa di Laravel Inertia React
Irsyad A. Panjaitan
- Laravel Script: composer run dev
Irsyad A. Panjaitan
- Apa yang Baru di Inertia.js 2.0
Irsyad A. Panjaitan
- Membuat Custom Rule Validator untuk Nomor Telepon Indonesia dengan Laravel
Abd. Asis
- Like System dengan Laravel Polymorphic
Irsyad A. Panjaitan
- Laravel Dengan Multi Koneksi Database: Panduan Langkah demi Langkah
Abd. Asis