ในบทความนี้เดี๋ยวผมจะแนะนำให้ท่านรู้จักกับ ชาวโลก แอ๊ะ! ยังไง... ไม่ใช่ เดี๋ยวเรามาสร้างเพจแรกกันด้วยการ แสดงคำว่า "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 ขึ้นมาแสดงด้วยสำหรับบทความนี้ก็ขอจบเพียงเท่านี้ครับ....









0 ความคิดเห็น:
แสดงความคิดเห็น