⊗ppMVDFmMdP 35 of 35 menu

การใช้งานคลาสแม่ของโมเดลทั้งหมดใน MVC framework ที่สร้างเอง

มาสร้างคลาสแม่สำหรับโมเดลทั้งหมดกัน:

<?php namespace Core; class Model { private $link; public function __construct() { $this->link = mysqli_connect(DB_HOST, DB_USER, DB_PASS, DB_NAME); mysqli_query($this->link, "SET NAMES 'utf8'"); } protected function findOne($query) { // จะมีโค้ดบางอย่างที่นี่ } protected function findMany($query) { // จะมีโค้ดบางอย่างที่นี่ } } ?>

อย่างที่คุณเห็น ใน constructor ของคลาสเราได้ทำการเชื่อมต่อกับฐานข้อมูล อย่างไรก็ตาม มีปัญหาอยู่อย่างหนึ่ง: ทุก ๆ โมเดลที่ถูกสร้างขึ้น (หากภายในหนึ่งการกระทำของ controller มีหลายโมเดล) จะทำการเชื่อมต่อกับฐานข้อมูลของตัวเอง ซึ่งไม่ใช่สิ่งที่ดีที่สุด

มาทำให้การเชื่อมต่อกับฐานข้อมูลถูกสร้างขึ้นสำหรับโมเดลแรกที่ถูกสร้างเท่านั้น และโมเดลอื่น ๆ ที่ตามมาจะใช้การเชื่อมต่อที่ถูกสร้างขึ้นแล้วกัน เพื่อการนี้ ให้เปลี่ยนคุณสมบัติ link ให้เป็น static:

<?php namespace Core; class Model { private static $link; public function __construct() { if (!self::$link) { // หากคุณสมบัตินี้ยังไม่ได้ถูกกำหนดค่า ให้ทำการเชื่อมต่อ self::$link = mysqli_connect(DB_HOST, DB_USER, DB_PASS, DB_NAME); mysqli_query(self::$link, "SET NAMES 'utf8'"); } } protected function findOne($query) { } protected function findMany($query) { } } ?>

คัดลอกรหัสของคลาส Model ที่ให้ไว้และวางไว้ในไฟล์ /core/Model.php

ให้ใช้งาน method findOne ในคลาสนี้ ทดสอบการทำงานของมัน

ให้ใช้งาน method findMany ในคลาสนี้ ทดสอบการทำงานของมัน

ไทย
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣTürkmenTürkçeЎзбекOʻzbekTiếng Việt
เราใช้คุกกี้สำหรับการทำงานของเว็บไซต์ การวิเคราะห์ และการปรับเนื้อหาให้เหมาะสมส่วนบุคคล การประมวลผลข้อมูลเกิดขึ้นตาม นโยบายความเป็นส่วนตัว.
ยอมรับทั้งหมด ปรับแต่ง ปฏิเสธ