วิธีการ Extends Class Controller อื่นใน Codeigniter

สำหรับคนที่ยังงงๆ กับการ extends class ของ Controller อื่นได้โดยที่ไม่ต้องประกาศเป็น Class แบบ Global อย่าง CI_Controller มาดูวิธีทำง่ายๆ กันดีกว่า

อันดับแรกเราต้องมี class ต้นแบบของเราซะก่อน ในที่นี้เคนจะสร้างเป็น class ชื่อ News ละกัน บันทึกไว้ที่ application/controllers/News.php และทำการสร้างตัวแปรแบบ protected เพื่อให้ class ที่ extends ไปเปลี่ยนค่าตัวแปรได้

[php]
class News extends CI_Controller {

protected $title = "News";
protected $topic = "ข่าวสาร";

public function __construct() {
parent::__construct();
}

}
[/php]

เรามาทำอีก class ที่จะ extends class News กันดีกว่า อันนี้เคนให้ชื่อว่า class Activity บันทึกไว้ที่ application/controllers/Activity.php ซึ่งข้อสำคัญที่จะทำได้หรือไม่ได้มันอยู่ตรงนี้!!! เราต้องทำการ require ไฟล์ News.php เข้ามาก่อน!!!

[php]
require APPPATH . ‘controllers/News.php’;

class Activity extends News {

public function __construct() {
parent::__construct();
$this->title = "Activity";
$this->topic = "กิจกรรม";
}

}
[/php]

เนี่ยแหละคือจุดสำคัญมันอยู่ที่บรรทัด require APPPATH . ‘controllers/News.php’ ถ้าไม่มีบรรทัดนี้ยังไงก็ extends ไม่ได้ และถ้า require ไม่ตรงที่อยู่มันก็จะเกิด Error อีกแหน่ะ

APPPATH คือค่าที่ถูก define โดย Codeigniter จะเก็บค่า path จนถึง application/

ทริคง่ายๆ ที่ทำให้โค้ดของคุณสั้นลงไปได้เยอะเลย

เราใช้คุกกี้เพื่อพัฒนาประสิทธิภาพ และประสบการณ์ที่ดีในการใช้เว็บไซต์ของคุณ คุณสามารถศึกษารายละเอียดได้ที่ นโยบายความเป็นส่วนตัว และสามารถจัดการความเป็นส่วนตัวเองได้ของคุณได้เองโดยคลิกที่ ตั้งค่า

ตั้งค่าความเป็นส่วนตัว

คุณสามารถเลือกการตั้งค่าคุกกี้โดยเปิด/ปิด คุกกี้ในแต่ละประเภทได้ตามความต้องการ ยกเว้น คุกกี้ที่จำเป็น

ยอมรับทั้งหมด
จัดการความเป็นส่วนตัว
  • คุกกี้ที่จำเป็น
    เปิดใช้งานตลอด

    ประเภทของคุกกี้มีความจำเป็นสำหรับการทำงานของเว็บไซต์ เพื่อให้คุณสามารถใช้ได้อย่างเป็นปกติ และเข้าชมเว็บไซต์ คุณไม่สามารถปิดการทำงานของคุกกี้นี้ในระบบเว็บไซต์ของเราได้

  • คุกกี้เพื่อการวิเคราะห์

    คุกกี้นี้เป็นการเก็บข้อมูลสาธารณะสำหรับการวิเคราะห์ และเก็บสถิติการใช้งานภายในเว็บไซต์นี้เท่านั้น ไม่ได้เก็บข้อมูลส่วนตัวที่ไม่เป็นสาธารณะใดๆ ของผู้ใช้งาน

บันทึกการตั้งค่า