คู่มือการใช้งาน CodeIgniter เวอร์ชั่น 1.7.2


Scaffolding (โครงยกพื้น)

Scaffolding ซึ่งเป็นคุณสมบัติของ CodeIgniter จัดหามาให้ซึ่งรวดเร็วและสะดวกมากในการเพิ่ม , แก้ไข , ลบ ข้อมูลต่างๆภายในฐานข้อมูลในช่วงพัฒนางาน

ข้อสำคัญ: Scaffolding ตั้งใจไว้ใช้เพียงช่วงพัฒนางานเท่านั้น มันมีระบบรักษาความปลอดภัยน้อยซึ่งมีใช้เพียง "คำที่เป็นความลับ" ดังนั้นเมื่อใครเข้ามาในเว็บ CodeIgniter นี้ (รู้ทางเขา) ก็จะสามารถแก้ไขหรือลบข้อมูลของคุณได้ ถ้าคุณใช้ Scaffolding ให้คุณทำการยกเลิกการใช้งานทันทีเมื่อคุณจะเอาไปใช้งานจริง อย่าปล่อยให้คุณสมบัตินี้ไปอยู่บนเว็บไซด์จริงของคุณ และกรุณาใช้ "คำที่เป็นความลับ" (secret word) ก่อนจะคุณจะใช้มัน

ทำไมบางคนใช้โครงยกพื้น ?

นี้คือตัวอย่างบท: คุณสร้างตารางฐานข้อมูลในระหว่างการพัฒนา และคุณต้องที่จะเพิ่มข้อมูลลงไปยังงานของคุณ ถ้าคุณไม่ใช้โครงยกพื้น (scaffolding) ทางเลือกของคุณก็คือเขียนคำสั่ง insert หรือไม่ก็ใช้เครื่องมือจัดการฐานข้อมูลอย่าง phpMyAdmin ด้วยคุณสมบัตินี้คุณสามารถเพิ่มข้อมูลโดยใช้เพียงบราวเซอร์ และเมื่อไรที่คุณต้องการลบข้อมูลก็ทำได้โดยง่ายๆเพียงคลิกเดียว

ตั้งค่าคำที่เป็นความลับ

ก่อนจะเริ่มใช้โครงยกพื้นกรุณาใช้เวลาสักครู่ในการใส่คำลับลงไป คำนี้เมื่ออยู่ใน URL ของคุณมันจะเรียกหน้าจอของโครงยกพื้นขึ้นมา (Scaffolding) ดังนั้นให้คุณเลือกมาสักอันที่คนอื่นยากที่จะเดา

วิธีตั้งค่าคำลับ เปิดไฟล์ application/config/routes.php และมองหาสิ่งนี้

$route['scaffolding_trigger'] = '';

เมื่อคุณพบแล้วให้ใส่คำที่คุณคิดขึ้นมาได้เลย

หมายเหตุ: คำลับของโครงยกพื้นนั้นไม่สามารถเริ่มด้วย underscore (_) ได้

การใช้งานโครงยกพื้น

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

สำหรับการใช้งานโครงยกพื้น(scaffolding) คุณจะต้องเตรียมพร้อมมันในตัวสร้างคลาสแบบนี้:

<?php
class Blog extends Controller {

       function Blog()
       {
            parent::Controller();

            $this->load->scaffolding('table_name');
       }
}
?>

โดย table_name คือชื่อของตารางของคุณที่คุณจะทำงาน (ตาราง, ไม่ใช่ฐานข้อมูล)

เมื่อคุณทำเสร็จเรียบร้อยแล้ว ให้คุณเข้าผ่าน URL ต้นแบบนี้

example.com/index.php/class/secret_word/

ยกตัวอย่างเช่น ถ้าใช้ชื่อตัวควบคุมเป็น Blog, และ abracadabra เป็นคำลับ คุณจะต้องเข้าโครงยกพื้นแบบนี้

example.com/index.php/blog/abracadabra/

หน้าตาของโครงยกพื้นจะอธิบายในตัวมันเอง คุณสามารถเพิ่ม , แก้ไข หรือลบข้อมูลได้

ข้อสังเกตุสุดท้าย

คุณสมบัติโครงยกพื้น(scaffolding) จะใช้ได้ก็ต่อเมื่อตารางที่ทำมาใช้มีัตัวกุญแจหลัก(primary key) และนี้คือสิ่งจำเป็นสำหรับหลายฟังก์ชันในฐานข้อมูล