Touching Timestamps Dalam Laravel

1 min read

Published on 03 Jul (updated: 16 Sep)

Written by Irsyad A. Panjaitan

Fill in LaravelDatabaseTips and Tricks

ArticlesTouching 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.


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()]);
phpCopy

Maka kita bisa ganti dengan cara touch seperti

$user->touch();
phpCopy

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([ // ... ]);
phpCopy

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); } }
phpCopy

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();
phpCopy

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

Share on