Minggu, 03 July 2022

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.

Karteil
Destinasi Utama Belajar Online dengan Format Tulisan yang Elegan
Kunjungi Sekarang

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.

Go to Irsyad A. Panjaitan profile
Support me
SaweriaGithub