Laravel datatables translate

transaction : ใช้สำหรับการทำงานที่ต้องทำหลายๆงานพร้อมกัน โดยถ้ามีงานใดงานหนึ่งไม่สำเร็จ งานทุกงานที่ทำไปจะ rolled back ค่ากลับไป หรือก็คือจะไม่มีอะไรเกิดขึ้น ทุกอย่างยังเหมือนเดิม
เหมาะกับงานที่เกี่ยวกพันกัน หรือมุ่งหวังให้ทุกงาน ต้องสำเร็จเหมือนกัน ในการรัยครั้งเดียว จะสำเร็จ แค่งานใดงานนึงไม่ได้
โดย method นี้จะรับข้อมูลเข้า 2 ตัว
ตัวแรกเป็น callback function สำหรับรันคำสั่ง
ตัวที่ 2 เป็นตัวเลข จำนวนครั้งที่ลองทำซ้ำอีกครั้ง แนะนำว่าให้ว่างไว้ Default เป็น 1 อยู่แล้ว
ถือว่าเป็น method ที่น่าสนในมากๆตัวนึงเลย
แต่…แต่ การเขียนคำสั่ง จะเขียนอีกแบบ ที่ต้องกำหนดเป็นรายละเอียดเหมือนเขียนคำสั่ง Running SQL Queries

ตัวอย่างข้อมูล

id      owner       balance
1       Anna        500
2       Brianna     500
3       Kerena      1000
4       Pitter      1000

ทดสอบ ด้วยการอัพเดท 2  Record ที่มีมีอยู่จริง

$result = DB::transaction(function () {
    DB::update('update book_banks set balance = 900 where id = 1');
    DB::update('update book_banks set balance = 900 where id = 2');
});
$result = NULL
id      owner       balance
1       Anna        900
2       Brianna     900
3       Kerena      1000
4       Pitter      1000

ทดสอบอัพเดท 2Record โดยมี 1 Record ที่ไม่มีอยู่จริง

ผลคือไม่มีอะไรเกิดขึ้น

$result = DB::transaction(function () {
    DB::update('update book_banks set balance = 900 where id = 11');
    DB::update('update book_banks set balance = 900 where id = 2');
});
$result = null
id      owner       balance
1       Anna        500
2       Brianna     500
3       Kerena      1000
4       Pitter      1000
Exit mobile version