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