ปัญหาการเขียน web App โดยใช้โมเดล MVC เจอปัญหาคือ หลังจากที่เรา select rows ใน Model แล้วเนี่ยจะส่งผ่าน Controller ไปให้ View ได้ยังไง? ยิ่งเขียนแบบ OO ต้องส่ง object ข้ามไฟล์เลยทีเดียว และยิ่งไปกว่านั้น app ผมเอา AJAX มาใช้ซะด้วยสิ
โดยใน app ของผมนี้หลังจาก query ออกมาเสร็จก็จับใส่ object เรียงต่อกันเป็น array แล้วก็ตัน..ไม่รู้ว่าจะเอา object พวกนี้โยนไปยังไง
หลังจากนั่งหาข้อมูล + งมอยู่หลายชั่วโมงก็สามารถแก้ปัญหาได้ โดย…
1. เอา array of object มา serialize
2. หลังจากนั้นโยนใส่ตัวแปร session เพื่อให้สามารถเห็นได้ทุกไฟล์
3. ไฟล์ที่ต้องการใช้ข้อมูล สมมติว่าเป็น view สามารถเอาค่าที่เก็บใน session ออกมา unserialize เพื่อให้กลายเป็น object เหมือนเดิมได้
4. หลังจากใช้เสร็จก็ unset session ซะ
สำหรับโค้ดก็จะหน้าตาประมาณนี้
การทำ serialize
$_SESSION[“arrayOfObj”] = serialize($arrayOfObj);
การทำ unserialize
$arrayOfObj = unserialize($_SESSION[“arrayOfObj”]);