ในการใช้งาน function ใน model เราต้องเรียกใช้งานโดยผ่านตัว controller เพราะในตัว JoomShopping สร้างด้วย Joomla จึงทำให้ใช้แนวคิดของ MVC ในการเขียนตัว Joomla โดยในการใช้งานฟังก์ชันที่เราสร้างไว้ในโมเดลได้นั้นเราต้องไปเขียนโค้ดในตัว controller เพื่อให้ตัว controller ไปเรียกใช้ฟังก์ชันในโมเดลอีกทีนึงโดยสามารถเรียกได้ดังนี้
- 1.สร้างฟังก์ชันใน class ในไฟล์ที่อยู่ในโมเดล ตัวอย่างเช่นไฟล์ในโมเดลชื่อ test.php ดังตัวอย่าง
2.สร้างฟังก์ชันในไฟล์ที่อยู่ใน controller ดังตัวอย่าง
โค้ด: เลือกทั้งหมด
class mindphpTest{ public function getUsers() { $db = \Joomla\CMS\Factory::getDbo(); $query = $db->getQuery(true) ->select('*') ->from('#__users') $db->setQuery($query); $user= $db->loadAssocList(); return $user; } }
คำอธิบายโค้ด: เลือกทั้งหมด
function showuser(){ $showuser= JSFactory::getModel('test', 'mindphp'); $showusers = $showuser->getUsers(); $view = $this->getView('test'); $view->setLayout('testphp'); $view->assign('showuser',$showuser); $view->display(); }
- $showuser= JSFactory::getModel('test', 'mindphp'); เป็นการเรียกใช้งานโมเดลโดย test คือชื่อไฟล์และชื่อท้ายของคลาส ส่วน mindphp คำขึ้นต้นคลาส
$showusers = $showuser->getUsers(); เป็นคำสั่งที่เรียกใช้งานฟังก์ชันที่อยู่ในโมเดล
$view = $this->getView('test'); test คือชื่อของโฟลเดอร์ที่อยู่ใน view
$view->setLayout('testphp'); เป็นคำสั่งเซ็ตค่าในไฟล์ testphp ที่อยู่ใน view
$view->assign('showuser',$showuser); จากโค้ดจะส่งค่าตัวแปร $showuser ใน Controller ไปใช้ใน View โดยผ่าน $view->assign('showuser',$showuser); ตัว showuser คือชื่อตัวแปรที่จะใช้ใน View
$view->display(); เป็นคำสั่งให้ข้อมูลไปแสดงในไฟล์ที่อยู่ใน view
- $showuser= JSFactory::getModel('test', 'mindphp'); เป็นการเรียกใช้งานโมเดลโดย test คือชื่อไฟล์และชื่อท้ายของคลาส ส่วน mindphp คำขึ้นต้นคลาส
ช่องทางการศึกษาเพิ่มเติมข่าวที่น่าสนใจเกี่ยวกับ : Joomla