โดย 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
[b][size=150][color=#FF00BF]controller เรียกใช้ function ใน model ใน JoomShopping[/color][/size][/b]
ในการใช้งาน function ใน model เราต้องเรียกใช้งานโดยผ่านตัว controller เพราะในตัว JoomShopping สร้างด้วย Joomla จึงทำให้ใช้แนวคิดของ [url=https://www.mindphp.com/%E0%B8%84%E0%B8%B9%E0%B9%88%E0%B8%A1%E0%B8%B7%E0%B8%AD/73-%E0%B8%84%E0%B8%B7%E0%B8%AD%E0%B8%AD%E0%B8%B0%E0%B9%84%E0%B8%A3/3491-mvc-%E0%B8%84%E0%B8%B7%E0%B8%AD.html]MVC[/url] ในการเขียนตัว [url=https://www.mindphp.com/download/all-download/documents/categories/37-core-joomla.html]Joomla[/url] โดยในการใช้งานฟังก์ชันที่เราสร้างไว้ในโมเดลได้นั้นเราต้องไปเขียนโค้ดในตัว [url=https://www.mindphp.com/%E0%B8%9A%E0%B8%97%E0%B9%80%E0%B8%A3%E0%B8%B5%E0%B8%A2%E0%B8%99%E0%B8%AD%E0%B8%AD%E0%B8%99%E0%B9%84%E0%B8%A5%E0%B8%99%E0%B9%8C/%E0%B8%AA%E0%B8%AD%E0%B8%99-joomla-extension/1969-component-joomla-controller.html]controller[/url] เพื่อให้ตัว controller ไปเรียกใช้ฟังก์ชันในโมเดลอีกทีนึงโดยสามารถเรียกได้ดังนี้
[list]1.สร้างฟังก์ชันใน class ในไฟล์ที่อยู่ในโมเดล ตัวอย่างเช่นไฟล์ในโมเดลชื่อ test.php ดังตัวอย่าง
[code]
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;
}
}
[/code]
2.สร้างฟังก์ชันในไฟล์ที่อยู่ใน controller ดังตัวอย่าง
[code]
function showuser(){
$showuser= JSFactory::getModel('test', 'mindphp');
$showusers = $showuser->getUsers();
$view = $this->getView('test');
$view->setLayout('testphp');
$view->assign('showuser',$showuser);
$view->display();
}
[/code]
[b]คำอธิบาย[/b]
[list][b][color=#BFBF00]$showuser= JSFactory::getModel('test', 'mindphp');[/color][/b] เป็นการเรียกใช้งานโมเดลโดย test คือชื่อไฟล์และชื่อท้ายของคลาส ส่วน mindphp คำขึ้นต้นคลาส
[b][color=#BFBF00]$showusers = $showuser->getUsers();[/color][/b] เป็นคำสั่งที่เรียกใช้งานฟังก์ชันที่อยู่ในโมเดล
[b][color=#BFBF00]$view = $this->getView('test');[/color][/b] test คือชื่อของโฟลเดอร์ที่อยู่ใน view
[b][color=#BFBF00]$view->setLayout('testphp');[/color][/b] เป็นคำสั่งเซ็ตค่าในไฟล์ testphp ที่อยู่ใน view
[b][color=#BFBF00]$view->assign('showuser',$showuser);[/color][/b] จากโค้ดจะส่งค่าตัวแปร $showuser ใน Controller ไปใช้ใน View โดยผ่าน $view->assign('showuser',$showuser); ตัว showuser คือชื่อตัวแปรที่จะใช้ใน View
[b][color=#BFBF00]$view->display();[/color][/b] เป็นคำสั่งให้ข้อมูลไปแสดงในไฟล์ที่อยู่ใน view[/list]
[/list]
จากนั้นก็ลอง print_r ออกมาดูค่าได้ หากค่าไม่ออกลองเช็ค error ดูว่าผู้ใช้พิมพ์อะไรผิดไปบ้าง
[b]ช่องทางการศึกษาเพิ่มเติมข่าวที่น่าสนใจเกี่ยวกับ : Joomla[/b]
[list]-[url=https://www.mindphp.com/%E0%B8%84%E0%B8%B9%E0%B9%88%E0%B8%A1%E0%B8%B7%E0%B8%AD/manual-joomla-extension-by-mindphp.html]คู่มือการใช้งาน Joomla Extension By Mindphp[/url]
-[url=https://www.mindphp.com/forums/viewforum.php?f=86]สอบถามเกี่ยวกับ Joomla[/url]
-[url=https://www.mindphp.com/forums/viewforum.php?f=142]ศึกษาข้อมูลเกี่ยวกับ Joomla[/url]
-[url=https://www.mindphp.com/forums/viewforum.php?f=72]ศึกษาความรู้เกี่ยวกับ PHP[/url]
-[url=https://www.mindphp.com/forums/viewforum.php?f=6]ถามตอบเกี่ยวกับ PHP[/url][/list]