ในบทความนี้เดี๋ยวผมจะแนะนำให้ท่านรู้จักกับ ชาวโลก แอ๊ะ! ยังไง... ไม่ใช่ เดี๋ยวเรามาสร้างเพจแรกกันด้วยการ แสดงคำว่า "Hello World" คำๆนี้สำหรับคนเรียนเขียนโปรแกรมจะต้องรู้จักเป็นอย่างดี ผมเองก็สงสัยว่าคำๆนี้มีที่มา อย่างไร ทำไมตอนเริ่มหัดเขียนโปรแกรมจะต้อง "Hello World" ตลอดเลย มาถึงตอนนี้ท่านอาจจะบ่นว่า "จะอะไรกันนักกันหนากับคำๆนี้" ผมก็ว่างั้น อิอิ.... ok เดี๋ยวเราไป Hello World กันดีกว่าครับ...
เริ่ม
ต่อไปนี้คือพาธของคำที่กล่าวถึง
models คือ application/models/
controllers คือ application/controller/
views คือ application/views/
ให้ท่านสร้างไฟล์ที่ controllers ตั้งชื่อว่า home.php ในไฟล์นี้เราจะเขียน class ขึ้นมาหนึ่ง class ชื่อว่า Home
ตามรูปแบบของ Codeigniter ดังนี้
class Home extends CI_Controller{ // do someting.... }ท่านอย่าลืมนะครับว่าชื่อ class กับชื่อไฟล์ต้องเหมือนกัน จากนั้นผมก็จะสร้าง method หรือ function ขึ้นมาแบบนี้
class Home extends CI_Controller{ public function index() { echo "Hello World"; } }ก่อนที่จะรันดูผลงานก็ให้ท่านเข้าไปที่ application/config/routes.php
ให้ปรับแก้บรรทัดนี้
$route['default_controller'] = "home";ด้วยการเปลี่ยนจาก welcome มาเป็น home จากนั้นท่านก็ลองรันดู ถ้าไม่มีปัญหาอะไรท่านก็จะเห็นคำว่า Hello World
แต่หลักการแบบ MVC นั้น echo "Hello World"; จะต้องไปเก็บไว้ที่ views ถึงจะถูกต้องตามเจตนารมณ์ของ
Codeigniter ดังนั้นเราก็ต้องไปสร้างไฟล์ที่ views ชื่อว่า home_v.php ในไฟล์นี้ผมก็จะเขียนแบบนี้
<!DOCTYPE html"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title></title> </head> <body> <h3>Hello World</h3> <?php echo "Hello World"; ?> </body> </html>จากนั้นเราก็ไปกำหนดให้ controllers เรียก views ขึ้นมาแสดงด้วยโค้ดนี้
$this->load->view('...ชื่อไฟล์ที่ต้องการเรียก...');
class Home extends CI_Controller{ public function index() { $this->load->view('home_v'); } }มาถึงตอนนี้ท่านก็สามารถที่จะใช้ controller เรียกไฟล์จาก views มาแสดงได้แล้ว
ส่งข้อมูลจาก controllers ไปให้ views ทำอย่างไร
เราจะสร้างตัวแปรขึ้นมา เก็บค่าคำว่า I Iove Codeigniter.แบบนี้
$data['mydata'] = "I Love Codeigniter.";แล้วเราก็จะส่งไปแสดงที่ views แบบนี้
$this->load->view('home_v', $data);ตัวอย่าง
class Home extends CI_Controller{ public function index() { $data['mydata'] = "I Love Codeigniter."; $this->load->view('home_v', $data); } }จากนั้นเราก็ไป echo ตัวแปรที่เราสร้างขึ้นที่ views แบบนี้
<html> <head> <title></title> </head> <body> <?php echo $mydata; ?> </body> </html>ในกรณีที่ตัวแปรเก็บค่าแบบ Array แบบนี้
$data['mydata'] = array( 'name' => 'bookneo', 'password' => '123', 'email' => 'bookneo@bookneo.com' );เราก็ยังคงส่งค่าไปแสดงที่ views แบบเดิม
$this->load->view('home_v', $data);ตัวอย่าง
class Home extends CI_Controller{ public function index() { $data['mydata'] = array( 'name' => 'bookneo', 'password' => '123', 'email' => 'bookneo@bookneo.com' ); $this->load->view('home_v', $data); } }แล้วเราก็ไปวนลูปแสดงที่ views ด้วย foreach แบบนี้
<!DOCTYPE html"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title></title> </head> <body> <h3>Hello World</h3> <ul> <?php foreach($mydata as $item){ echo '<li>'.$item.'</li>'; } ?> </ul> </body> </html>มาถึงตอนนี้เราก็สามารถส่งค่าต่างๆไปให้กับ view พร้อมทั้งใช้ controller เรียก view ขึ้นมาแสดงด้วย
สำหรับบทความนี้ก็ขอจบเพียงเท่านี้ครับ....