controller เรียกใช้ function ใน model ใน JoomShopping

แชร์ ความรู้ในการ พัฒนา Joomla Component Extension Module Plugin

Moderator: mindphp, ผู้ดูแลกระดาน

Parichat
PHP VIP Members
PHP VIP Members
โพสต์: 4859
ลงทะเบียนเมื่อ: 08/01/2018 10:03 am

controller เรียกใช้ function ใน model ใน JoomShopping

โพสต์ที่ยังไม่ได้อ่าน โดย Parichat »

controller เรียกใช้ function ใน model ใน JoomShopping

ในการใช้งาน function ใน model เราต้องเรียกใช้งานโดยผ่านตัว controller เพราะในตัว JoomShopping สร้างด้วย Joomla จึงทำให้ใช้แนวคิดของ MVC ในการเขียนตัว Joomla โดยในการใช้งานฟังก์ชันที่เราสร้างไว้ในโมเดลได้นั้นเราต้องไปเขียนโค้ดในตัว controller เพื่อให้ตัว controller ไปเรียกใช้ฟังก์ชันในโมเดลอีกทีนึงโดยสามารถเรียกได้ดังนี้
  • 1.สร้างฟังก์ชันใน class ในไฟล์ที่อยู่ในโมเดล ตัวอย่างเช่นไฟล์ในโมเดลชื่อ test.php ดังตัวอย่าง

    โค้ด: เลือกทั้งหมด

    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;
            }
    }
    
    2.สร้างฟังก์ชันในไฟล์ที่อยู่ใน controller ดังตัวอย่าง

    โค้ด: เลือกทั้งหมด

    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
จากนั้นก็ลอง print_r ออกมาดูค่าได้ หากค่าไม่ออกลองเช็ค error ดูว่าผู้ใช้พิมพ์อะไรผิดไปบ้าง

ช่องทางการศึกษาเพิ่มเติมข่าวที่น่าสนใจเกี่ยวกับ : Joomla
Live Simply, Laugh Often, Love Deeply.....
  • Similar Topics
    ตอบกลับ
    แสดง
    โพสต์ล่าสุด

ผู้ใช้งานขณะนี้

สมาชิกกำลังดูบอร์ดนี้: ไม่มีสมาชิกใหม่ และบุคลทั่วไป 25