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

ตอบกระทู้

รูปแสดงอารมณ์
:icon_plusone: :like: :plusone: :gfb: :-D :) :( :-o 8O :? 8) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: :angry: :baa: :biggrin:
รูปแสดงอารมณ์อื่นๆ

BBCode เปิด
[img] เปิด
[url] เปิด
[Smile icon] เปิด

กระทู้แนะนำ
   

มุมมองที่ขยายได้ กระทู้แนะนำ: controller เรียกใช้ function ใน model ใน JoomShopping

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

ข้างบน