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

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

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

ภาพประจำตัวสมาชิก
Parichat
PHP VIP Members
PHP VIP Members
โพสต์: 1365
ลงทะเบียนเมื่อ: 08/01/2018 10:03 am

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

โพสต์โดย Parichat » 16/06/2018 3:38 pm

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
    ตอบกลับ
    แสดง
    โพสต์ล่าสุด

ย้อนกลับไปยัง

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

กำลังดูบอร์ดนี้: 3 และ บุคคลทั่วไป 0 ท่าน