คู่มือการใช้งาน CodeIgniter Version 2.1.0


CodeIgniter URLs

Url ปรกติที่ใช้ในตัว CodeIgniter เป็นมิตรทั้ง search-engine และผู้เข้าใช้ ผู้ใช้สามารถดูแล้วรู้เรื่อง มันดีกว่าที่จะใช้ url แบบเดิมๆ ที่ยาวและยากแก่การเข้าใจ CodeIgniter ใช้ พื้นฐานการแยกเป็นส่วน ในการเข้าถึงค่าที่อยู่ใน URL ต่างๆ อย่างเช่น

example.com/news/article/my_article

หมายเหตุ: คิวรี่สตริงของ URL สามารถที่จะทำให้ใช้งานได้ ดังจะได้อธิบายข้างล่างต่อไปนี้

ส่วนต่างๆใน URI

ส่วนต่างๆใน URL, ในการทำงานแบบ Model-View-Controller ปกติจะมีรูปแบบ :

example.com/class/function/ID
  1. ส่วนแรกจะบอกว่าเป็นคลาส controller(ตัวควบคุม) ตัวใดที่ถูกเรียกใช้
  2. ส่วนที่สองจะบอกว่า ฟังก์ชันของคลาส หรือ เมธอด ใดที่ถูกเรียกใช้
  3. ส่วนที่สาม และส่วนอื่นๆที่เพิ่มเข้ามาจากนี้ บอกว่า ID และ ตัวแปรใดๆก็ตามจะถูกส่งไปให้กับ controller(ตัวควบคุม)

URI Class และ URL Helper มีฟังก์ชันต่างๆที่ช่วยให้การทำงานกับ URI เป็นเรื่องง่าย เสริมสักนิด URL ของคุณสามารถถูกกำหนดรูปแบบใหม่ได้โดยใช้คุณสมบัติของ การกำหนดเส้นทาง URI เพื่อความยืดหยุ่นมากขึ้น

ตัด index.php ออกใน url

โดยพื้นฐาน, ไฟล์ index.php จะถูกเรียกใช้ใน URL ต่างๆของคุณ:

example.com/index.php/news/article/my_article

คุณสามารถใช้ไฟล์ .htaccess ในการตัด index.php ออก ด้วยการเขียนกฏง่ายๆในการตัด index.php นี่คือตัวอย่างหนึ่งของไฟล์ .htaccess เป็นการใช้ เมธอด "negative" ซึ่งไม่ว่าอะไรก็ตามจะถูกชี้เข้ามา จะถูกแก้ใข url ใหม่ให้สอดคล้องกับรายการเดิมของ url :RewriteEngine on
RewriteCond $1 !^(index\.php|assets|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]

จากตัวอย่างข้างบน HTTP ใดๆเมื่อร้องขอไฟล์ที่ไม่ใช่ index.php, assets, robots.txt จะถูกกระทำเป็นการร้องขอสำหรับไฟล์ index.php ของคุณ

การเพิ่มคำต่อท้าย URL

ในไฟล์ config/config.php คุณสามารถกำหนดคำต่อท้ายที่จะถูกเพิ่มให้แก่ URLs ทั้งหมด ซึ่งถูกสร้างโดย CodeIgniter สำหรับตัวอย่างข้างล่างนี้ ถ้า URL เป็นดังนี้

example.com/index.php/products/view/shoes

คุณสามารถเลือกเพิ่มคำต่ิอท้าย อย่างเช่น .html, เป็นการทำให้หน้าปรากฏเป็นรูปแบบที่แน่นอน :

example.com/index.php/products/view/shoes.html

ให้สิทธิ์ยอมใช้คิวรี่สตริง(url ดั้งเดิม)

ในบางกรณีคุณอาจจะชอบใช้คิวรีสตริงของ URL แบบนี้ :

index.php?c=products&m=view&id=345

CodeIgniter สนันยังสนุนรูปแบบดังข้างต้น, ซึ่งสามารถทำได้ในไฟล์ application/config.php ถ้าคุณเปิดไฟล์ตั้งค่าของคุณคุณจะเห็นรายการเหล่านี้ :

$config['enable_query_strings'] = FALSE;
$config['controller_trigger'] = 'c';
$config['function_trigger'] = 'm';

ถ้าคุณเปลี่ยน "enable_query_strings" เป็น TRUE คุณสมบัตินี้จะทำงาน controller (ตัวควบคุม)ต่างๆ และฟังก์ชันต่างๆจะเข้าถึงได้ด้วยการใช้คำว่า "trigger" คุณต้องตั้งค่าสำหรับการเรียก controller (ตัวควบคุม) ของคุณ และ เมธอดต่างๆ :

index.php?c=controller&m=method

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