20.01.2015 Views

Yii Framework

Yii Framework

Yii Framework

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

1<br />

คู่มือการใช้งาน <strong>Yii</strong> <strong>Framework</strong><br />

<strong>Yii</strong> <strong>Framework</strong> เป็น <strong>Framework</strong> ที่จะช่วยให้นักพัฒนาโปรแกรม สามารถพัฒนาโปรแกรม<br />

ได้สะดวกและรวดเร็วขึ้น โดยคู่มือนี้ได้รวบรวมขั้นตอนและวิธีการต่าง ๆ ในการพัฒนาระบบงาน<br />

ให้ผู้ที่สนใจได้ศึกษา โดยมีหัวข้อต่าง ๆ ดังนี้<br />

1. การดาวน์โหลดและติดตั้ง<br />

2. การตั้งค่า Config<br />

3. Code Generate<br />

4. การสร้างหน้าสมัครสมาชิก<br />

5. การท าระบบ Login โดยดึงข้อมูล User จากฐานข้อมูล<br />

6. เกี่ยวกับ Session<br />

7. การสร้างแบบฟอร์มส าหรับกรอกข้อมูล<br />

7.1 การใช้งาน session<br />

7.2 การก าหนดขนาด Textbox<br />

7.3 การสร้าง Radio Button<br />

7.4 การสร้าง Textarea<br />

7.5 การสร้าง DropdownList แบบดึงข้อมูลจากฐานข้อมูล<br />

7.6 การสร้าง DropdownList แบบสร้างตัวเลือกในแบบฟอร์ม<br />

8. การ Join ตาราง<br />

8.1 การแสดงผลแบบ CListView<br />

8.2 การแสดงผลแบบ CGridView<br />

9. การสร้างฟอร์มส าหรับอัพโหลดและการแสดงผลส าหรับดาวน์โหลด<br />

10. การสร้างฟอร์มส าหรับอัพโหลดรูปและการแสดงผล<br />

11. การใช้ DateTimePicker ด้วย Extension CJuiDateTimePicker<br />

12. การใช้ extension jquery-gmap<br />

13. การติดตั้ง extension Rights<br />

14. การใช้ entension MbMenu เพื่อก าหนดรูปแบบการแสดงเมนูแบบ DropdownList<br />

15. การก าหนดการมองเห็นเมนู


2<br />

1. การดาวน์โหลดและติดตั้ง<br />

การดาวน์โหลดและติดตั้งมีวิธีการดังต่อไปนี้<br />

1. ดาวน์โหลด <strong>Yii</strong> <strong>Framework</strong> เวอร์ชั่น 1.1.10 ได้ที่ http://www.yiiframework.com/<br />

download/ ดังรูปที่ 1-1<br />

รูปที่ 1-1 แสดงหน้าเว็บไซต์ส าหรับดาวน์โหลด yii framework<br />

2. Extract ไฟล์ที่ดาวน์โหลดมา ไว้ภายใต้ไดเรคทอรี่ C:/AppServ/www/<br />

3. เมื่อ Extract ไฟล์แล้ว ให้เข้าไปตรวจความต้องการของระบบ โดยเข้าไปที่<br />

http://localhost/yii/requirements ดังรูปที่ 1-2


3<br />

รูปที่ 1-2 แสดงการตรวจสอบความต้องการของระบบ<br />

4. หาก PDO MySQL extension แสดงเป็น Warning ให้ไปแก้ไขที่C:\window\php.ini<br />

4.1 ท าการลบ comment (;) ที่บรรทัด extension=php_pdo.dll และ extension =<br />

php_pdo_mysql.dll หลังจากนั้นท าการ save และ restart เครื่องใหม่<br />

5. หลังจากนั้นให้ท าการสร้างโปรเจคงาน ที่มีชื่อว่า <strong>Yii</strong>Training โดยมีวิธีการดังนี้<br />

5.1 เปิด cmd.exe แล้วไปที่ไดเรคทอรี่ AppServ/www/yii/framework ด้วยค าสั่ง cd<br />

C:/AppServ/www/yii/framework<br />

5.2 ภายใต้ไดเรคทอรี C:/AppServ/www/yii/framework/ พิมพ์ php yiic webapp<br />

../../ <strong>Yii</strong>Training เพื่อสร้างโปรเจค ictExpert ดังรูปที่ 1-3


4<br />

รูปที่ 1-3 แสดงการสร้างโปรเจค <strong>Yii</strong>Training<br />

6. เมื่อสร้างโปรเจค <strong>Yii</strong>Training เป็นที่เรียบร้อยแล้ว สามารถเข้าไปดูหน้าเว็บแอพพลิเคชั่น<br />

ที่เราสร้างขึ้นได้ที่ http://localhost/<strong>Yii</strong>Training/index.php ซึ่งมีหน้าแสดงผลดังรูปที่ 1-4<br />

2. การตั้งค่า Config<br />

รูปที่ 1-4 แสดงหน้าหลักของเว็บแอพพลิเคชั่น<br />

หลังจากที่ได้สร้างโปรเจค <strong>Yii</strong>Training แล้ว ต้องท าการแก้ไขค่า Config เพื่อให้สามารถใช้<br />

งานได้ ซึ่งมีวิธีการแก้ไขดังนี้<br />

1. ภายใต้ไดเรคทอรี่ www/<strong>Yii</strong>Training/protected/config/main.php จะประกอบด้วยส่วน<br />

ต่างๆ ดังนี้<br />

1.1 ส่วนของชื่อ เว็บแอพพลิเคชั่น สามารถแก้ไขได้ที่ 'name'=> <strong>Yii</strong>Training ', ดัง<br />

รูปที่ 2-1


5<br />

รูปที่ 2-1 แสดงส่วนแก้ไขหัวข้อเว็บแอพพลิเคชั่น<br />

1.2 ส่วนของ gii ส่วนนี้เป็นเครื่องมือที่ใช้ในการ Generate โค้ดต่าง ๆ เพื่อใช้ใน<br />

การสร้างเว็บแอพพลิเคชั่น แก้ไขโดยการลบ comment ของ gii ออกและแก้ไข password<br />

ตามที่เราต้องการ ดังรูปที่ 2-2<br />

รูปที่ 2-2 แสดงส่วนแก้ไข gii<br />

1.3 ส่วนของ Component ให้ลบ comment ของ urlManager ออก เพื่อเป็นการ<br />

format การเรียกใช้ url ใหม่ ดังรูปที่ 2-3<br />

รูปที่ 2-3 แสดงส่วนแก้ไข urlManager


6<br />

โดยเมื่อลบ comment ออก จะเกิดความแตกต่างดังนี้<br />

- การเรียกใช้ gii จากเดิม การเรียกใช้จะมีลักษณะดังนี้<br />

http://localhost/<strong>Yii</strong>Training/index.phpr=gii<br />

- เมื่อมีการลบ comment ออก การเรียกใช้จะมีลักษณะดังนี้<br />

http://localhost/<strong>Yii</strong>Training/index.php/gii<br />

1.4 ตั้งค่าการเชื่อมต่อกับฐานข้อมูลดังนี้<br />

1. ใส่ comment ในบรรทัดต่อไปนี้ เพื่อเป็นการปิดการเชื่อมต่อกับ<br />

ฐานข้อมูลเดิม ดังรูปที่ 2-4<br />

รูปที่ 2-4 แสดงส่วนแก้ไขการเชื่อมต่อฐานข้อมูลที่ต้องใส่ comment<br />

2. ลบ comment ในบรรทัดต่อไปนี้ เพื่อเป็นการเปิดการเชื่อมต่อกับ<br />

ฐานข้อมูลที่ต้องการ โดยเมื่อลบ comment ออก จะต้องแก้ไขข้อมูล ดังรูปที่ 2-5<br />

2.1 แก้ไข host และชื่อฐานข้อมูลในบรรทัด connectionString<br />

2.2 แก้ไข username ที่ใช้เชื่อมต่อกับฐานข้อมูลในบรรทัด<br />

username โดย username ต้องตรงกับ username ที่ใช้ในการ login<br />

ฐานข้อมูล<br />

2.3 แก้ไข password ที่ใช้เชื่อมต่อกับฐานข้อมูลในบรรทัด<br />

password โดย password ต้องตรงกั บ password ที่ใช้ในการ login<br />

ฐานข้อมูล<br />

รูปที่ 2-5 แสดงส่วนแก้ไขการเชื่อมต่อฐานข้อมูล


7<br />

2. หลังจากแก้ไข Config เป็นที่เรียบร้อยแล้ว จะสามารถเข้าใช้งาน Gii ได้ที่<br />

http://localhost/<strong>Yii</strong>Training/index.php/gii โดยหน้า Gii ใช้ในการ Generate โค้ดที่ใช้ในการสร้าง<br />

เว็บแอพพลิเคชั่นได้ โดยจะต้อง login ก่อนเพื่อเข้าไปยังหน้า Code Generator ซึ่งหน้า login มีการ<br />

แสดงผล ดังรูปที่ 2-6<br />

รูปที่ 2-6 แสดงหน้า login ของ Gii<br />

เมื่อ login เป็นที่เรียบร้อยแล้ว จะเข้าสู่หน้า Code Generator ซึ่งมีรูปแบบการแสดงผล<br />

ดังรูปที่ 2-7<br />

รูปที่ 2-7 แสดงหน้า Code Generator


8<br />

3. Code Generate<br />

ใน Code Generator ประกอบไปด้วย 5 ส่วนดังนี้<br />

- Controller Generator<br />

- Crud Generator<br />

- Form Generator<br />

- Model Generator<br />

- Module Generator<br />

Controller Generator<br />

คือ ส่วนที่ใช้ในการ Generate Controller ตามรูปแบบ MVC (Model-View-Controller) ซึ่ง<br />

Controller Generator มีรูปแบบการแสดงผล ดังรูปที่ 3-1<br />

Crud Generator<br />

รูปที่ 3-1 แสดงหน้า Controller Generator<br />

Crud ย่อมาจาก (Create – Read – Update – Delete) คือ ส่วนที่ท าให้การ Generate โค้ด ให้<br />

สามารถเพิ่ม ลบ แก้ไข ข้อมูลได้ โดยที่ไม่ต้องเขียนโค้ดเอง ซึ่งจะสามารถใช้ Crud Generator ได้ก็<br />

ต่อเมื่อ มีการ Generate Model ที่ต้องการแล้วเท่านั้น ซึ่ง Crud Generator มีรูปแบบการแสดงผล ดัง<br />

รูปที่ 3-2


9<br />

Form Generator<br />

รูปที่ 3-2 แสดงหน้า Crud Generator<br />

คือ ส่วนที่ท าการสร้างหน้าแบบฟอร์มที่ใช้ในการกรอกข้อมูล โดยจะถูกเรียกใช้โดย<br />

Controller รูปแบบฟอร์มที่ Generate ออกมานั้นจะมีรูปแบบมาจาก Model ที่ได้สร้างไว้ ซึ่ง Form<br />

Generator มีรูปแบบการแสดงผล ดังรูปที่ 3-3<br />

รูปที่ 3-3 แสดงหน้า Form Generator


10<br />

Model Generator<br />

คือ ส่วนที่เชื่อมต่อกับฐานข้อมูล โดยการสร้าง Model นั้น จะมีการอ้างถึงตารางที่อยู่ใน<br />

ฐานข้อมูลด้วย ซึ่ง Model Generator มีรูปแบบการแสดงผล ดังรูปที่ 3-4<br />

Modules Generator<br />

รูปที่ 3-4 แสดงหน้า Model Generator<br />

คือหน่วยซอฟต์แวร์ในตัวเองที่ประกอบด้วย models, views, Controllers และส่วนประกอบ<br />

ที่สนับสนุนอื่น ๆ ในหลาย ๆ ด้านโมดูลคล้ายกับโปรแกรม แต่มีความแตกต่างที่ส าคัญคือโมดูลจะ<br />

ไม่สามารถใช้งานได้ในตัวเดียวและมันจะต้องอยู่ภายในของแอพลิเคชัน ผู้ใช้สามารถเข้าถึงการ<br />

ควบคุมในโมดูลเหมือนที่พวกเขาท ากับตัวควบคุมในการใช้งานปกติ<br />

โมดูลจะมีประโยชน์ในสถานการณ์ต่างๆ ส าหรับโปรแกรมขนาดใหญ่ โดยอาจแบ่งโมดูล<br />

ออกเป็นโมดูลต่าง ๆ แต่ละการพัฒนาและมีการเก็บรักษาไว้ต่างหาก คุณลักษณะบางอย่างที่ใช้กัน<br />

ทั่วไปเช่น การจัดการผู้ใช้ การจัดการความคิดเห็น อาจได้รับการพัฒนาในแง่ของโมดูลเพื่อให้<br />

สามารถน ากลับมาได้อย่างง่ายดายในโครงการในอนาคต Model Generator มีรูปแบบการแสดงผล<br />

ดังรูปที่ 3-5


11<br />

4. การสร้างหน้าสมัครสมาชิก<br />

รูปที่ 3-5 แสดงหน้า Model Generator<br />

User Login เป็นตารางส าหรับเก็บข้อมูล user และ password ส าหรับใช้ในการ Login โดย<br />

หน้าสมัครสมาชิกมีวิธีการท าดังต่อไปนี้<br />

1. Generate Model UserLogin<br />

เป็นการ Generate Model มาจากตาราง user_login เพื่อใช้ในการติดต่อกับฐานข้อมูล โดย<br />

การ Generate Model UserLogin มีวิธีการดังรูปที่ 4-1<br />

1. ที่ http://localhost/<strong>Yii</strong>Training/index.php/gii เลือก Model Generator ใส่ชื่อ<br />

ตารางที่ Table Name และตั้งชื่อ Model Class<br />

2. คลิกที่ Preview หลังจากนั้นจะแสดง File ซึ่งสามารถแสดงรูปแบบ Source<br />

Code ได้<br />

3. คลิกที่ Generate เพื่อสร้าง File


12<br />

รูปที่ 4-1 แสดงการ Generate Model UserLogin<br />

4. เมื่อ Generate แล้วสามารถดูโค้ดได้ที่ไดเรคทอรี่ www/<strong>Yii</strong>Training/protected/<br />

models/UserLogin.php<br />

2. Generate Crud UserLogin<br />

หลังจากที่ได้สร้าง Model UserLogin เป็นที่เรียบร้อยแล้ว จะท าการสร้าง Controller และ<br />

View โดยใช้ Crud Generator เพื่อสร้างรูปแบบการเพิ่ม ลบ แก้ไขข้อมูล โดยการ Generate มีวิธีการ<br />

ดังรูปที่ 4-2<br />

1. ที่ http://localhost/<strong>Yii</strong>Training/index.php/gii เลือก Crud Generator ใส่ชื่อ<br />

Model และ Controller<br />

2. คลิกที่ Preview หลังจากนั้นจะแสดง File ซึ่งสามารถแสดงรูปแบบ Source<br />

Code ได้<br />

3. คลิกที่ Generate เพื่อสร้าง File


13<br />

รูปที่ 4-2 แสดงการ Generate Crud UserLogin<br />

4. เมื่อ Generate แล้วจะมีโค้ดถูกสร้างขึ้นมา 2 ส่วน คือ Controller และ View โดย<br />

ไฟล์ที่เป็น Controller สามา รถดูโค้ดได้ที่ ไดเรคทอรี่ www/<strong>Yii</strong>Training/protected/<br />

controller/UserLoginController.php และไฟล์ที่เป็น View สามารถดูโค้ดได้ที่ไดเรคทอรี่<br />

www/<strong>Yii</strong>Training/protected/views/userLogin/<br />

3. แก้ไข Controller เพื่อให้ผู้ใช้ทั่วไปสามารถกรอกข้อมูลได้ มีวิธีการดังนี้<br />

1. ที่ไดเรคทอรี่ www/<strong>Yii</strong>Training/protected/controllers/UserLoginController.php<br />

ในฟังก์ชัน accessRules ส่วนนี้จะเป็นการก าหนดสิทธิของผู้ใช้งานในแต่ละระดับ ซึ่งได้แก่<br />

- ส่วนของผู้ใช้ทั่วไป (users) สัญลักษณ์ที่ใช้ คือ *<br />

- ส่วนของสมาชิก (member) สัญลักษณ์ที่ใช้ คือ @<br />

- ส่วนของผู้ดูแลระบบ (admin) สัญลักษณ์ที่ใช้ คือ admin<br />

ซึ่งการก าหนดสิทธิของผู้ใช้จะมีลักษณะดังรูปที่ 4-3


14<br />

รูปที่ 4-3 แสดงรูปแบบการก าหนดสิทธิของผู้ใช้<br />

2. ก าหนดสิทธิของผู้ใช้ทั่วไปให้สามารถใช้สิทธิในการ create ได้ จากเดิม สมาชิก<br />

เท่านั้นที่จะสามารถ create ได้ ซึ่งมีวิธีการดังนี้<br />

2.1 เพิ่ม 'create' ในส่วนของการก าหนดสิทธิให้กับผู้ใช้ทั่วไป และ ลบ 'create' ใน<br />

ส่วนของสมาชิก เพื่อป้องกันไม่ให้สมาชิกสามารถกรอกข้อมูลเพิ่มได้อีก โดยแก้ไข ดังรูป<br />

ที่ 4-4<br />

รูปที่ 4-4 แสดงการก าหนดสิทธิ create ให้กับผู้ใช้<br />

3. ที่ ไ ด เรค ท อรี่ www/<strong>Yii</strong>Training/protected/views/accountLogin/_form.php<br />

แก้ไขส่วนต่าง ๆ ดังนี้<br />

3.1 แก้ ไ ขรู ปแ บ บการ กรอกข้ อมูลข อง Password จา ก textField เป็ น<br />

passwordField เพื่อให้การกรอกรหัสผ่านมีความปลอดภัยเพิ่มมากขึ้น โดยแก้ไขค าสั่ง ดัง<br />

รูปที่ 4-5


15<br />

รูปที่ 4-5 แสดงการก าหนด passwordField<br />

3.2 เมื่ อแ ก้ ไ ข เรี ย บ ร้ อย แ ล้ ว ผู้ ใ ช้ ทั่ ว ไ ป สา มา ร ถ สมั ค ร ส มา ชิ ก ไ ด้ ที่<br />

http://localhost/<strong>Yii</strong>Training/index.php/userlogin/create ซึ่งมีรูปแบบการแสดงผล ดังรูปที่<br />

4-6<br />

รูปที่ 4-6 แสดงแบบฟอร์มหน้า create ของ UserLogin


16<br />

5. การท าระบบ Login โดยดึงข้อมูล User จากฐานข้อมูล<br />

1. ที่ไดเรคทอรี่ www/<strong>Yii</strong>Training/protected/components/UserIdentity.php ให้แก้ไข ดังนี้<br />

1. ประกาศตัวแปร private $id_user; ภายใต้ Class UserIndentity<br />

2. แก้ไขฟังก์ชั่น authenticate ให้เป็นดังรูปที่ 5-1<br />

รูปที่ 5-1 แสดงการแก้ไขฟังก์ชั่น authenticate<br />

2. ที่ ไ ด เรค ท อรี่ www/<strong>Yii</strong>Training/protected/models/UserLogin.php เพิ่ มฟั ง ก์ ชั่ น<br />

validatePassword ดังรูปที่ 5-2<br />

รูปที่ 5-2 แสดงฟังก์ชั่น validatePassword<br />

3. ทดลองระบบ Login โดยใช้ชื่อ user ที่มีอยู่ในฐานข้อมูลได้ที่ http://localhost/<br />

<strong>Yii</strong>Training/index.php ดังรูปที่ 5-3


17<br />

6. เกี่ยวกับ session<br />

รูปที่ 5-3 แสดงการ Login โดย user<br />

การประกาศ session เพื่อเก็บ id_user ของผู้ใช้งาน โดยจะท าการ เก็บ id_user ของผู้ใช้ใน<br />

ขณะที่ผู้ใช้ท าการ Login ซึ่งมีวิธีการดังต่อไปนี้<br />

1. ที่ไดเรคทอรี่ www/<strong>Yii</strong>Training/protected/components/UserIdentity.php เพิ่มค าสั่ง<br />

<strong>Yii</strong>::app()-> session['user'] = $user-> id_user; เพื่อน าค่า id_user ไปเก็บไว้ใน อาร์เรย์ session ที่ชื่อ<br />

ว่า ID_User ดังรูปที่ 6-1<br />

รูปที่ 6-1 แสดงการสร้าง session


18<br />

2. การเรียกใช้งาน session ท าได้โดย ประกาศตัวแปร 1 ตัว เพื่อเก็บ session โดยใช้ค าสั่ง<br />

ดังนี้ $ID_User = <strong>Yii</strong>::app()->session['ID_User']; เป็นการเก็บค่า session['user'] ไว้ในตัวแปร<br />

$ID_User ดังรูปที่ 6-2<br />

7. การสร้างแบบฟอร์มส าหรับกรอกข้อมูล<br />

รูปที่ 6-2 แสดงการเรียกใช้ session<br />

การสร้างแบบฟอร์มส าหรับกรอกข้อมูลนั้น ได้รวบรวมหัวข้อเรื่องต่าง ๆ เข้าไว้ด้วยกัน<br />

โดยใช้การแบบฟอร์มของ User Detail ในการรวบรวมข้อมูล ซึ่งมีหัวข้อต่าง ๆ ดังนี้<br />

การสร้างแบบฟอร์ม User Detail เพื่อใช้ในการแสดงผล และ เก็บข้อมูล<br />

1. Generate Model UserDetail<br />

เป็นการ Generate Model มาจากตาราง user_detail เพื่อใช้ในการติดต่อกับฐานข้อมูล โดย<br />

การ Generate Model UserDetail มีวิธีการ ดังรูปที่ 7-1<br />

1. ที่ http://localhost/<strong>Yii</strong>Training/index.php/gii เลือก Model Generator ใส่ชื่อ<br />

ตารางที่ Table Name และตั้งชื่อ Model Class<br />

2. คลิกที่ Preview หลังจากนั้นจะแสดง File ซึ่งสามารถแสดงรูปแบบ Source<br />

Code ได้<br />

3. คลิกที่ Generate เพื่อสร้าง File


19<br />

รูปที่ 7-1 แสดงการ Generate Model UserDetail<br />

4. เมื่อ Generate แล้วสามารถดูโค้ดได้ที่ไดเรคทอรี่ www/<strong>Yii</strong>Training/protected/<br />

models/UserDetail.php<br />

2. Generate Crud UserDetail<br />

หลังจากที่ได้สร้าง Model UserDetail เป็นที่เรียบร้อยแล้ว จะท าการสร้าง Controller และ<br />

View โดยใช้ Crud Generator เพื่อสร้างรูปแบบการเพิ่ม ลบ แก้ไขข้อมูล โดยการ Generate มีวิธีการ<br />

ดังรูปที่ 7-2<br />

1. ที่ http://localhost/<strong>Yii</strong>Training/index.php/gii เลือก Crud Generator ใส่ชื่อ<br />

Model และ Controller<br />

2. คลิกที่ Preview หลังจากนั้นจะแสดง File ซึ่งสามารถแสดงรูปแบบ Source<br />

Code ได้<br />

3. คลิกที่ Generate เพื่อสร้าง Code File


20<br />

รูปที่ 7-2 แสดงการ Generate Crud userDetail<br />

4. เมื่อ Generate แล้วจะมีโค้ดถูกสร้างขึ้นมา 2 ส่วน คือ Controller และ View โดย<br />

ไฟล์ที่เป็น Controller สามา รถดูโค้ดได้ที่ ไดเรคทอรี่ www/<strong>Yii</strong>Training/protected/<br />

controller/userDetailController.php และไฟล์ที่เป็น View สามารถดูโค้ดได้ที่ไดเรคทอรี่<br />

www/<strong>Yii</strong>Training/protected/views/userDetail/<br />

เมื่อได้ Generate เพื่อสร้างแบบฟอร์ม User Detail เป็นที่เรียบร้อยแล้ว ต่อไปจะเป็นการ<br />

ยกตัวอย่างการจัดการกับแบบฟอร์มในรูปแบบต่าง ๆ ดังนี้<br />

การใช้งาน Session<br />

การใช้งาน Session เป็นการสาธิตการน าSession เข้ามาใช้งานหลังจากที่ได้มีการเก็บ<br />

Session แล้วในหัวข้อเรื่อง เกี่ยวกับ Session โดยการน า Session มาใช้งานมีวิธีการดังต่อไปนี้<br />

1. ประกาศ ตัวแปร session ในบรรทัดแรกของไดเรคทอรี่ www/<strong>Yii</strong>Training/protected/<br />

views/userDetail/_form.php โดยใช้ค าสั่ง ดังรูปที่ 7-3<br />

รูปที่ 7-3 แสดงการประกาศตัวแปรเพื่อเรียกใช้ session


21<br />

2. ก าหนดค่าลงไปใน Text field ของ id_user โดยเพิ่มค าสั่ง array('value'=>$ID_User) ลง<br />

ไปในค าสั่ง textField ดังรูปที่ 7-4<br />

รูปที่ 7-4 แสดงการก าหนดค่าใน textField id_user<br />

3. เมื่อค่าในTextbox เรียบร้อยแล้ว สามารถดูการแสดงผลได้ ที่ http://localhost/<br />

<strong>Yii</strong>Training/index.php/userDetail/create/ ในการเข้าถึงหน้า UserDetail นั้น ผู้ใช้ต้องท าการ Login<br />

เข้าสู่ระบบก่อนจึงจะสามารถดูรูปแบบการแสดงผลได้ โดยการแสดงผลการก าหนดค่าใน Textbox<br />

โดยใช้ Session มีรูปแบบการแสดงผล ดังรูปที่ 7-5<br />

รูปที่ 7-5 แสดงการก าหนดค่าใน textField


22<br />

การก าหนดขนาด Textbox<br />

การก าหนดขนาด Textbox เป็นการก าหนดขนาดความกว้างของ Textbox และปริมาณของ<br />

ตัวอักษรที่ใส่ใน Textbox โดยการก าหนดขนาดนั้นจะก าหนดความกว้าง คือ size และจ านวน<br />

ตัวอักษรที่รับคือ maxlength ซึ่งการก าหนดค่าได้แสดงดังรูปที่ 7-6<br />

การสร้าง Radio Button<br />

รูปที่ 7-6 การก าหนดขนาด Textbox<br />

ที่ไดเรคทอรี่ www/<strong>Yii</strong>Training/protected/views/userDetail/_form.php ก าหนดรูปแบบการ<br />

แสดงผลของ gender จาก Textbox เป็น Radio Button ดังรูปที่ 7-7<br />

รูปที่ 7-7 การก าหนด Radio Button<br />

เมื่อก าหนดรูปแบบการแสดงแบบฟอร์มเป็นที่เรียบร้อยแล้วสามารถ ดูรูปแบบการแสดง<br />

ผลได้ที่ http://localhost/<strong>Yii</strong>Training/index.php/userdetail/create ซึ่งมีรูปแบบการแสดงผล ดังรูปที่<br />

7-8


23<br />

การสร้าง Textarea<br />

รูปที่ 7-8 การแสดงแบบฟอร์ม แบบ Radio Button<br />

ที่ไดเรคทอรี่ www/<strong>Yii</strong>Training/protected/views/userDetail/_form.php ก าหนดรูปแบบการ<br />

แสดงแบบฟอร์มของ address จาก Textbox เป็น TextArea ดังรูปที่ 7-9<br />

โดยต้องก าหนด 2 ส่วนด้วยกันคือ<br />

- ส่วนที่ 1 การก าหนดแบบฟอร์มเป็น TextArea<br />

- ส่วนที่ 2 การก าหนดขนาดของ TextArea<br />

รูปที่ 7-9 การก าหนดรูปแบบ TextArea


24<br />

เมื่อก าหนดรูปแบบการแสดงแบบฟอร์มเป็นที่เรียบร้อยแล้วสามารถ ดูรูปแบบการแสดง<br />

ผลได้ที่ http://localhost/<strong>Yii</strong>Training/index.php/userdetail/create ซึ่งมีรูปแบบการแสดงผล ดังรูปที่<br />

7-10<br />

รูปที่ 7-10 การแสดงแบบฟอร์ม แบบ TextArea<br />

การสร้าง DropdownList แบบดึงข้อมูลจากฐานข้อมูล<br />

การสร้าง DropdownList แบบดึงข้อมูลจากฐานข้อมูล มีวิธีการ ดังรูปที่ 7-11<br />

1. Generate Model Provice<br />

1. ที่ http://localhost/<strong>Yii</strong>Training/index.php/gii เลือก Model Generator ใส่ชื่อ<br />

ตารางที่ Table Name และตั้งชื่อ Model Class<br />

2. คลิกที่ Preview หลังจากนั้นจะแสดง File ซึ่งสามารถแสดงรูปแบบ Source<br />

Code ได้<br />

3. คลิกที่ Generate เพื่อสร้าง File


25<br />

รูปที่ 7-11 แสดงการ Generate Model Province<br />

2. ที่ไดเรคทอรี่ www/<strong>Yii</strong>Training/protected/views/userDetail/_form.php ก าหนดรูปแบบ<br />

การแสดงแบบฟอร์มของ Province ดังรูปที่ 7-12<br />

รูปที่ 7-12 แสดงการก าหนดรูปแบบ DropdownList แบบดึงข้อมูลจากฐานข้อมูล<br />

3. เมื่อก าหนดรูปแบบ DropdownList แบบดึงข้อมูลจากฐานข้อมูลแล้ว สามารถดูรูปแบบ<br />

การ แสดง ผลไ ด้ที่ http://localhost/<strong>Yii</strong>Training/index.php/userdetail/create ซึ่ งมีรู ปแ บบ กา ร<br />

แสดงผล ดังรูปที่ 7-13


26<br />

รูปที่ 7-13 การแสดงแบบฟอร์ม แบบ DropdownList แบบดึงข้อมูลจากฐานข้อมูล<br />

การสร้าง DropdownList แบบสร้างตัวเลือกในแบบฟอร์ม<br />

ที่ไดเรคทอรี่ www/<strong>Yii</strong>Training/protected/views/userDetail/_form.php ก าหนดรูปแบบการ<br />

แสดงแบบฟอร์มของ Type_user ดังรูปที่ 7-14<br />

รูปที่ 7-14 แสดงการก าหนดรูปแบบ DropdownList แบบสร้างตัวเลือกในแบบฟอร์ม


27<br />

เมื่อก าหนดรูปแบบ DropdownList แบบสร้างตัวเลือกในแบบฟอร์มแล้ว สามารถดูรูปแบบ<br />

การ แสดง ผลไ ด้ที่ http://localhost/<strong>Yii</strong>Training/index.php/userdetail/create ซึ่ งมีรู ปแ บบ กา ร<br />

แสดงผล ดังรูปที่ 7-15<br />

รูปที่ 7-15 การแสดงแบบฟอร์ม แบบ DropdownList แบบสร้างตัวเลือกในแบบฟอร์ม<br />

8. การ Join ตาราง และการแสดงผล<br />

ในการ join ตารางนี้จะท าการ join ระหว่างตาราง user_login และ ตาราง user_detail เพื่อ<br />

สร้างหน้า Profile ของสมาชิก โดยจะสาธิตรูปแบบการแสดงผล 2 แบบด้วยกัน ซึ่งมีวิธีการดังนี้<br />

สร้าง Controller Member<br />

การสร้าง Controller Member มีวิธีการดังรูปที่ 8-1<br />

1. ที่ http://localhost/<strong>Yii</strong>Training/index.php/gii เลือก Controller Generator ใส่ชื่อตารางที่<br />

Controller และ View<br />

2. คลิกที่ Preview หลังจากนั้นจะแสดง File ซึ่งสามารถแสดงรูปแบบ Source Code ได้


28<br />

3. คลิกที่ Generate เพื่อสร้าง File<br />

รูปที่ 8-1 แสดงการ Generate Controller Member<br />

4. เมื่อ Generate แล้วจะมีโค้ดถูกสร้างขึ้นมา 2 ส่วน คือ Controller และ View โดยไฟล์ที่<br />

เป็ น Controller สา มา ร ถดู โ ค้ ด ไ ด้ ที่ ไ ด เ ร ค ท อรี่ www/<strong>Yii</strong>Training/protected/controllers/<br />

MemberController.php และไฟล์ที่เป็น View สามารถดูโค้ดได้ที่ไดเรคทอรี่ www/<strong>Yii</strong>Training/<br />

protected/views/member/index.php<br />

การเขียนฟังก์ชั่นในการ join ตาราง<br />

เมื่อท าการ Generate Controller Member เป็นที่เรียบร้อยแล้ว สามารถ แก้ไข Controller<br />

Member ได้ที่ไดเรคทอรี่ www/<strong>Yii</strong>Training/protected/controllers/MemberController.php โดย<br />

แก้ไขฟังก์ชั่น actionIndex () เพื่อให้แสดงผลในหน้า index ซึ่งการแก้ไข ฟังก์ชั่น actionIndex () มี<br />

วิธีการดังรูปที่ 4-1


29<br />

การแสดงผลแบบ CListView<br />

รูปที่ 8-2 แสดงการแก้ไขฟังก์ชั่น actionIndex()<br />

หลังจากที่ได้แก้ไขฟังก์ชั่น actionIndex() เป็นที่เรียบร้อยแล้ว การแสดงผลในรูปแบบของ<br />

CListView มีวิธีการดังนี้<br />

1. เรียกใช้ widget CListView โดยการใช้ค าสั่งดังรูปที่ รูปที่ 8-3<br />

รูปที่ 8-3 แสดงการเรียกใช้ widget CListView<br />

2. ภายใต้ไดเรคทอรี่ www/<strong>Yii</strong>Training/protected/views/member สร้างไฟล์ _view.php<br />

เพื่อใช้ในการแสดงผล โดยในไฟล์ _view.php ใช้ค าสั่ง ดังรูปที่ 8-4


30<br />

รูปที่ 8-4 แสดงการเรียกใช้ widget CListView<br />

เมื่อใช้ค าสั่ง widget CListView และสร้างไฟล์ _view.php เป็นที่เรียบร้อยแล้ว สามารถดู<br />

รูปแบบการแสดงผลแบบ CListView ได้ที่ http://localhost/<strong>Yii</strong>Training/index.php/member/index<br />

ซึ่งมีรูปแบบการแสดงผล ดังรูปที่ 8-5


31<br />

การแสดงผลแบบ CGridView<br />

รูปที่ 8-5 แสดงรูปแบบการแสดงผลแบบ CListView<br />

หลังจากที่ได้แก้ไขฟังก์ชั่น actionIndex() เป็นที่เรียบร้อยแล้ว การแสดงผลในรูปแบบของ<br />

CGridView มีวิธีการดังนี้<br />

ที่ไ ด เร ค ทอรี่ www/<strong>Yii</strong>Training/protected/views/member/index.php เรีย กใช้ widget<br />

CGridView โดยใช้ค าสั่งดังรูปที่ 8-6


32<br />

รูปที่ 8-6 แสดงการเรียกใช้ widget CGridView<br />

เมื่อท าการเรียกใช้ widget CGridView แล้ว สามารถดูรูปแบบการแสดงผลแบบ<br />

CGridView ได้ที่ http://localhost/<strong>Yii</strong>Training/index.php/member/index ซึ่งมีรูปแบบการแสดงผล<br />

ดังรูปที่ 8-7


33<br />

รูปที่ 8-7 แสดงรูปแบบการแสดงผลแบบ CGridView<br />

9. การสร้างฟอร์มส าหรับอัพโหลดและการแสดงผลส าหรับดาวน์โหลด<br />

การสร้างฟอร์มส าหรับอัพโหลดและการแสดงผลส าหรับดาวน์โหลดมีวิธีการดังต่อไปนี้<br />

การสร้างฟอร์มส าหรับอัพโหลด<br />

1.Generate Model Document<br />

เป็นการ Generate Model มาจากตาราง Document เพื่อใช้ในการติดต่อกับฐานข้อมูล โดย<br />

การ Generate Model Document มีวิธีการดังรูปที่ 9-1<br />

1. ที่ http://localhost/<strong>Yii</strong>Training/index.php/gii เลือก Model Generator ใส่ชื่อ<br />

ตารางที่ Table Name และตั้งชื่อ Model Class<br />

2. คลิกที่ Preview หลังจากนั้นจะแสดง File ซึ่งสามารถแสดงรูปแบบ Source<br />

Code ได้<br />

3. คลิกที่ Generate เพื่อสร้าง File


34<br />

รูปที่ 9-1 แสดงการ Generate Model Document<br />

4. เมื่อ Generate แล้วสามารถดูโค้ดได้ที่ไดเรคทอรี่ www/<strong>Yii</strong>Training/protected/<br />

models/Document.php<br />

2. Generate Crud Document<br />

หลังจากที่ได้สร้าง Model Document แล้ว จะท าการสร้าง Controller และ View โดยใช้<br />

Crud Generator เพื่อสร้างรูปแบบการเพิ่ม ลบ แก้ไขข้อมูล โดยการ Generate มีวิธีการ ดังรูปที่ 9-2<br />

1. ที่ http://localhost/<strong>Yii</strong>Training/index.php/gii เลือก Crud Generator ใส่ชื่อ<br />

Model และ Controller<br />

2. คลิกที่ Preview หลังจากนั้นจะแสดง File ซึ่งสามารถแสดงรูปแบบ Source<br />

Code ได้<br />

3. คลิกที่ Generate เพื่อสร้าง Code File


35<br />

รูปที่ 9-2 แสดงการ Generate Crud Document<br />

4. เมื่อ Generate แล้วจะมีโค้ดถูกสร้างขึ้นมา 2 ส่วน คือ Controller และ View โดย<br />

ไฟล์ที่เป็น Controller สามา รถดูโค้ดได้ที่ ไดเรคทอรี่ www/<strong>Yii</strong>Training/protected/<br />

controllers/DocumentController.php และไฟล์ที่เป็น View สามารถดูโค้ดได้ที่ไดเรคทอรี่<br />

www/<strong>Yii</strong>Training/protected/views/Document/<br />

การแก้ไขแบบฟอร์มส าหรับอัพโหลดไฟล์<br />

การแก้ไข Controller Document เพื่ออัพโหลดไฟล์ มีวิธีการดังนี้<br />

1. สร้างไดเรคทอรี่ภายใต้ www/<strong>Yii</strong>Training ชื่อ Document เพื่อใช้ส าหรับเก็บไฟล์เอกสาร ดัง<br />

รูปที่ 9-3


36<br />

รูปที่ 9-3 แสดงการสร้างไดเรคทอรี่ Document<br />

2. ที่ www/<strong>Yii</strong>Training/protected/controllers/DocumentController.php แก้ไขฟังก์ชั่น<br />

actionCreate( ) ดังนี้<br />

1. ใช้ฟังก์ชั่น getInstance ของ คลาส CUploadFile ในการอัพโหลดไฟล์ ภายใต้<br />

ค าสั่ง if(isset($_POST['Document'])) ดังรูปที่ 9-4<br />

รูปที่ 9-4 แสดงการใช้ฟังก์ชั่น getInstance<br />

2. เรียกใช้ฟังก์ชั่น saveAs() เพื่อบันทึกเอกสารในไดเรคทอรี่ Document ภายใต้<br />

ค าสั่ง if($model->save()) ดังรูปที่ 9-5<br />

รูปที่ 9-5 แสดงการเรียกใช้ฟังก์ชั่น saveAs()


37<br />

การสร้างหน้าแสดงผลส าหรับดาวน์โหลดเอกสาร<br />

ในการสร้างหน้าแสดงผลนั้น จะท าการแก้ไขรูปแบบการแสดงผลของ _view.php ซึ่งเป็น<br />

ส่วนที่แสดงรายละเอียดของหน้า index.php ให้มี Link ที่สามารถแสดงเอกสารได้ โดยมีวิธีการดังนี้<br />

ที่ไดเรคทอรี่ www/<strong>Yii</strong>Training/protected/views/document/_view.php แก้ไขส่วนของ<br />

Attribute ที่ชื่อ document_file เพื่อสร้าง Link แสดงเอกสาร ซึ่งมีการแก้ไขค าสั่ง ดังรูปที่ 9-6<br />

รูปที่ 9-6 แสดงการท า Link แสดงเอกสาร<br />

เมื่อสร้าง Link แสดงเอกสารเป็นที่เรียบร้อยแล้ว สามารถดูรูปแบบการแสดงผลได้ที่<br />

http://localhost/<strong>Yii</strong>Training/index.php/Document/index โดยมีรูปแบบการแสดงผล ดังรูปที่ 9-7<br />

รูปที่ 9-7 แสดงผล Link แสดงเอกสาร


38<br />

เมื่อคลิกที่ Link เอกสาร จะแสดงผล ดังรูปที่ 9-8<br />

รูปที่ 9-8 แสดงผลเอกสาร<br />

10. การสร้างฟอร์มส าหรับอัพโหลดรูปและการแสดงผล<br />

การสร้างฟอร์มส าหรับอัพโหลดรูปและการแสดงผลวิธีการดังต่อไปนี้<br />

การสร้างฟอร์มส าหรับอัพโหลด<br />

1.Generate Model Image<br />

เป็นการ Generate Model มาจากตาราง image เพื่อใช้ในการติดต่อกับฐานข้อมูล โดยการ<br />

Generate Model Image มีวิธีการดังรูปที่ 10-1


39<br />

1. ที่ http://localhost/<strong>Yii</strong>Training/index.php/gii เลือก Model Generator ใส่ชื่อ<br />

ตารางที่ Table Name และตั้งชื่อ Model Class<br />

2. คลิกที่ Preview หลังจากนั้นจะแสดง File ซึ่งสามารถแสดงรูปแบบ Source<br />

Code ได้<br />

3. คลิกที่ Generate เพื่อสร้าง File<br />

รูปที่ 10-1 แสดงการ Generate Model Image<br />

4. เมื่อ Generate แล้วสามารถดูโค้ดได้ที่ไดเรคทอรี่ www/<strong>Yii</strong>Training/protected/<br />

models/Image.php<br />

2. Generate Crud Document<br />

หลังจากที่ได้สร้าง Model Image แล้ว จะท าการสร้าง Controller และ View โดยใช้ Crud<br />

Generator เพื่อสร้างรูปแบบการเพิ่ม ลบ แก้ไขข้อมูล โดยการ Generate มีวิธีการ ดังรูปที่ 10-2<br />

1. ที่ http://localhost/<strong>Yii</strong>Training/index.php/gii เลือก Crud Generator ใส่ชื่อ<br />

Model และ Controller<br />

2. คลิกที่ Preview หลังจากนั้นจะแสดง File ซึ่งสามารถแสดงรูปแบบ Source<br />

Code ได้


40<br />

3. คลิกที่ Generate เพื่อสร้าง Code File<br />

รูปที่ 10-2 แสดงการ Generate Crud Image<br />

4. เมื่อ Generate แล้วจะมีโค้ดถูกสร้างขึ้นมา 2 ส่วน คือ Controller และ View โดย<br />

ไฟล์ที่เป็น Controller สามา รถดูโค้ดได้ที่ ไดเรคทอรี่ www/<strong>Yii</strong>Training/protected/<br />

controllers/ImageController.php และไฟล์ที่เป็น View สามารถดูโค้ดได้ที่ไดเรคทอรี่<br />

www/<strong>Yii</strong>Training/protected/views/image/<br />

การแก้ไขแบบฟอร์มส าหรับอัพโหลดไฟล์รูปภาพ<br />

การแก้ไข Controller Image เพื่ออัพโหลดไฟล์รูปภาพ<br />

1. สร้างไดเรคทอรี่ภายใต้ www/<strong>Yii</strong>Training ชื่อ images เพื่อใช้ส าหรับเก็บไฟล์รูปภาพ ดัง<br />

รูปที่ 10-3


41<br />

รูปที่ 10-3 แสดงการสร้างไดเรคทอรี่ Document<br />

2. ที่ www/<strong>Yii</strong>Training/protected/controllers/ImageController.php แก้ไขฟังก์ชั่น<br />

actionCreate() ดังนี้<br />

1. ใช้ฟังก์ชั่น getInstance ของ คลาส CUploadFile ในการอัพโหลดไฟล์ ภายใต้ค าสั่ง<br />

if(isset($_POST['Document'])) ดังรูปที่ 10-4<br />

รูปที่ 10-4 แสดงการใช้ฟังก์ชั่น getInstance<br />

เรียกใช้ฟังก์ชั่น saveAs() เพื่อบันทึกเอกสารในไดเรคทอรี่ Document ภายใต้ค าสั่ง<br />

if($model->save()) ดังรูปที่ 10-5


42<br />

รูปที่ 10-5 แสดงการเรียกใช้ฟังก์ชั่น saveAs()<br />

ปัญหาที่พบ : ในฟังก์ชั่น actionCreate() มีปัญหาในส่วนที่เป็นค าสั่ง $this-> redirect (array( 'view',<br />

'id'=>$model->image_id )); ซึ่งปัญหาที่เกิดขึ้นจะท าการชี้แจงใน ภาคผนวก ก.<br />

การแสดงผลรูปภาพ<br />

ที่ ไ ด เรค ท อรี่ www/<strong>Yii</strong>Training/protected/views/image/_view.php แ ก้ ไ ข ส่ ว น ข อ ง<br />

Attribute ที่ชื่อ picture เพื่อให้สามารถแสดงผลรูปภาพได้ ซึ่งมีการแก้ไขค าสั่ง ดังรูปที่ 10-6<br />

รูปที่ 10-6 แสดงการใช้ค าสั่ง แสดงผลรูปภาพ<br />

เมื่อแก้ไขค าสั่งเรียบร้อยแล้ว สามารถดูรูปแบบการแสดงผลได้ ที่ http://localhost/<br />

<strong>Yii</strong>Training/index.php/image/index ซึ่งมีรูปแบบการแสดงผล ดังรูปที่ 10-11


43<br />

รูปที่ 10-11 แสดงรูปภาพที่อัพโหลด<br />

11. การใช้งาน DateTimePicker ด้วย Extension CJuiDateTimePicker<br />

CJuiDateTimePicker เป็น Extension เสริมส าหรับ Field ที่ต้องใส่ข้อมูลวันที่ และ เวลา<br />

เพื่อให้มีความสะดวกต่อผู้ใช้ โดยการน า Extension CJuiDateTimePicker มาใช้งานมีวิธีการดังนี้<br />

1. Generate Model Datetime<br />

เป็นการ Generate Model มาจากตาราง datetime เพื่อใช้ในการติดต่อกับฐานข้อมูล โดยการ<br />

Generate Model Datetime มีวิธีการ ดังรูปที่ 4-29<br />

1. ที่ http://localhost/<strong>Yii</strong>Training/index.php/gii เลือก Model Generator ใส่ชื่อ<br />

ตารางที่ Table Name และตั้งชื่อ Model Class<br />

2. คลิกที่ Preview หลังจากนั้นจะแสดง File ซึ่งสามารถแสดงรูปแบบ Source<br />

Code ได้<br />

3. คลิกที่ Generate เพื่อสร้าง File


44<br />

รูปที่ 11-1 แสดงการ Generate Model Datetime<br />

4. เมื่อ Generate แล้วสามารถดูโค้ดได้ที่ไดเรคทอรี่ www/<strong>Yii</strong>Training/protected/<br />

models/Datetime.php<br />

2. Generate Crud Datetimes<br />

หลังจากที่ได้สร้าง Model UserDetail เป็นที่เรียบร้อยแล้ว จะท าการสร้าง Controller และ<br />

View โดยใช้ Crud Generator เพื่อสร้างรูปแบบการเพิ่ม ลบ แก้ไขข้อมูล โดยการ Generate มีวิธีการ<br />

ดังรูปที่ 11-2<br />

1. ที่ http://localhost/<strong>Yii</strong>Training/index.php/gii เลือก Crud Generator ใส่ชื่อ<br />

Model และ Controller<br />

2. คลิกที่ Preview หลังจากนั้นจะแสดง File ซึ่งสามารถแสดงรูปแบบ Source<br />

Code ได้<br />

3. คลิกที่ Generate เพื่อสร้าง Code File


45<br />

รูปที่ 11-2 แสดงการ Generate Crud Datetimes<br />

4. เมื่อ Generate แล้วจะมีโค้ดถูกสร้างขึ้นมา 2 ส่วน คือ Controller และ View โดย<br />

ไฟล์ที่เป็น Controller สามา รถดูโค้ดได้ที่ ไดเรคทอรี่ www/<strong>Yii</strong>Training/protected/<br />

controller/DatetimesController.php และไฟล์ที่เป็น View สามารถดูโค้ดได้ที่ไดเรคทอรี่<br />

www/<strong>Yii</strong>Training/protected/views/datetimes/<br />

3. เ มื่ อ ท า ก า ร Generate เ รี ย บ ร้ อ ย แ ล้ ว ใ ห้ ท า ก า ร ด า ว น์ โ ห ล ด extension<br />

CJuiDateTimePicker ที่ http://www.yiiframework.com/extension/datetimepicker/ ดังรูปที่ 11-3<br />

รูปที่ 11-3 แสดงหน้าดาวน์โหลด extension CJuiDateTimePicker


46<br />

4. ท าการแตกไฟล์ที่ดาวน์โหลดเก็บไว้ที่ไดเรคทอรี่ www/<strong>Yii</strong>Training/protected/<br />

extensions<br />

5. เรียกใช้ extension CJuiDateTimePicker ซึ่งมีวิธีการดังนี้<br />

ดังนี้<br />

1. ที่ไดเรคทอรี่ www/<strong>Yii</strong>Training/protected/views/datetimes/_form.php แก้ไข<br />

1.1 แก้ไข Text field ของ datetime1 ให้แสดงรูปแบบส าหรับป้อนค าสั่งแบบวันที่<br />

และเวลา โดยใช้ค าสั่ง ดังรูปที่ 11-4<br />

รูปที่ 11-4 แสดงการแก้ไข textField datetime1<br />

การแก้ไข Text field ของ datetime1 ให้แสดงรูปแบบส าหรับป้อนค าสั่งแบบวันที่และเวลา<br />

มีรูปแบบการแสดงผลดังรูปที่ 11-5<br />

รูปที่ 11-5 แสดงรูปแบบการแสดงผลแบบวันที่และเวลา


47<br />

1.2 แก้ไข Text field ของ datetime2 ให้แสดงรูปแบบส าหรับป้อนค าสั่งแบบวันที่<br />

โดยใช้ค าสั่ง ดังรูปที่ 11-6<br />

รูปที่ 11-6 แสดงการแก้ไข textField datetime2<br />

การแก้ไข Text field ของ datetime2 ให้แสดงรูปแบบส าหรับป้อนค าสั่งแบบวันที่ มี<br />

รูปแบบการแสดงผลดังรูปที่ 11-7<br />

รูปที่ 11-7 แสดงรูปแบบการแสดงผลแบบวันที่<br />

1.3 แก้ไข Text field ของ datetime3 ให้แสดงรูปแบบส าหรับป้อนค าสั่งแบบเวลา<br />

โดยใช้ค าสั่ง ดังรูปที่ 11-8


48<br />

รูปที่ 11-8 แสดงการแก้ไข textField datetime3<br />

การแก้ไข Text field ของ datetime3 ให้แสดงรูปแบบส าหรับป้อนค าสั่งแบบเวลา มี<br />

รูปแบบการแสดงผลดังรูปที่ 11-9<br />

รูปที่ 11-9 แสดงรูปแบบการแสดงผลแบบเวลา<br />

6. เ มื่ อ แ ก้ ไ ข เ ป็ น ที่ เ รี ย บ ร้ อ ย แ ล้ ว ส า ม า ร ถ ดู รู ป แ บ บ ก า ร แ ส ด ง ผ ล ไ ด้ ที่<br />

http://localhost/<strong>Yii</strong>Training/index.php/datetimes/create โดยผู้ใช้จะต้องท าการ Login ก่อนจึงจะ<br />

สามารถเข้าถึงการใช้งานได้


12. การใช้ extension jquery-gmap เพื่อแสดงแผนที่<br />

extension jquery-gmap เป็น extension เสริมเพื่อน าแผนที่มาประยุกต์ใช้งาน ซึ่งการน า<br />

extension jquery-gmap มาใช้งานมีวิธีการดังต่อไปนี้<br />

1. สร้าง Controller jquery_gmap<br />

การสร้าง Controller Jquery_gmap มีวิธีการดังรูปที่ 12-1<br />

1. ที่ http://localhost/<strong>Yii</strong>Training/index.php/gii เลือก Controller Generator ใส่ชื่อ<br />

ตารางที่ Controller และ View<br />

2. คลิกที่ Preview หลังจากนั้นจะแสดง File ซึ่งสามารถแสดงรูปแบบ Source<br />

Code ได้<br />

3. คลิกที่ Generate เพื่อสร้าง File<br />

49<br />

รูปที่ 12-1 แสดงการ Generate Controller Jquery_gamp<br />

4. เมื่อ Generate แล้วจะมีโค้ดถูกสร้างขึ้นมา 2 ส่วน คือ Controller และ View โดย<br />

ไฟล์ที่เป็น Controller สามา รถดูโค้ด ได้ที่ไดเรคทอรี่ www/<strong>Yii</strong>Training/protected/<br />

controllers/Jquery_gampController.php และ ไฟล์ที่ เป็น View สามารถดูโ ค้ดได้ ที่<br />

ไดเรคทอรี่ www/<strong>Yii</strong>Training/protected/views/jquery_gmap/index.php


50<br />

2. ดาวน์โหลด extension jquery-gmap ได้ที่ http://www.yiiframework.com/extension/<br />

jquery-gmap/ ดังรูปที่ 12-2<br />

รูปที่ 12-2 แสดงหน้าเว็บไซต์ส าหรับดาวน์โหลด extension jqurey-gamp<br />

3. ท าการ Extract ไฟล์ที่ดาวน์โหลดมา แล้วน าไดเรคทอรี่ jquery-gampที่อยู่ภายใน<br />

ไดเรคทอรี่ jqurey-gmap_2.1 ซึ่งเป็นไดเร คทอรี่ที่ Extract มา น าไปไ ว้ในไดเรคทอรี่<br />

www/<strong>Yii</strong>Training/protected/extensions<br />

4. ที่ www/<strong>Yii</strong>Training/protected/views/jquery_gmap แก้ไขไฟล์ index.php ให้สามารถ<br />

แสดงแผนที่และก าหนด Marker ได้ ซึ่งมีวิธีการดังนี้<br />

1. เรียกใช้งาน Extension jquery-gmap โดยใช้ค าสั่ง ดังรูปที่ 12-3<br />

รูปที่ 12-3 แสดงการเรียกใช้งาน Extension jquery-gmap


51<br />

2. สร้างแผนที่โดยใช้ค าสั่ง ดังรูปที่ 12-4<br />

รูปที่ 12-4 แสดงการใช้ค าสั่งสร้างแผนที่<br />

3. สร้าง Marker<br />

การสร้าง Marker เป็นการสร้างเพื่อเป็นการก าหนดต าแหน่ง หรือบ่งบอกสถานที่ที่<br />

ต้องการ โดยการสร้าง Marker มีด้วยกัน 2 วิธีคือ สร้างแบบก าหนดละติจูด ลองติจูด และ<br />

สร้างแบบก าหนดชื่อเมือง และประเทศ<br />

3.1 การสร้าง Marker แบบก าหนดละติจูด ลองติจูด มีวิธีการ ดังรูปที่ 12-4<br />

รูปที่ 12-5 แสดงการสร้าง Marker แบบก าหนดละติจูด ลองติจูด


52<br />

3.2 การสร้าง Marker แบบก าหนดชื่อเมือง และประเทศ มีวิธีการ ดังรูปที่ 12-6<br />

รูปที่ 12-6 แสดงการสร้าง Marker แบบก าหนดชื่อเมือง และประเทศ<br />

4. ใช้ค าสั่งแสดงแผนที่ ดังรูปที่ 12-7<br />

รูปที่ 12-7 แสดงการใช้ค าสั่งแสดงแผนที่<br />

5. เมื่อแก้ไขไฟล์ index.php เป็นที่เรียบร้อยแล้ว สามารถดูรูปแบบการแสดงผลได้ที่<br />

http://localhost/<strong>Yii</strong>Training/index.php/jquery_gmap/index ซึ่งมีรูปแบบการแสดงผลดังรูปที่ 12-8


53<br />

รูปที่ 12-8 แสดงรูปแบบการใช้งาน Extension jquery-gamp<br />

13. การติดตั้ง extension Rights เพื่อใช้ในการก าหนดสิทธิการใช้งานของผู้ใช้<br />

Extension Rights เป็น extension เสริม เพื่อใช้ในการจัดการการเข้าถึงข้อมูล และการจ ากัด<br />

สิทธิการใช้งานของผู้ใช้ ซึ่งการติดตั้งการใช้งานมีวิธีการดังต่อไปนี้<br />

1. ที่ www/<strong>Yii</strong>Training/protected/ สร้างไดเร็คทอรี่ modules เพื่อเพิ่มส่วนการท างานที่เป็น<br />

Module ดังรูปที่ 13-1


54<br />

รูปที่ 13-1 แสดงการสร้างไดเรคทอรี่ modules<br />

1. ดาวน์โหลด Extension Right ที่ http://www.yiiframework.com/extension/rights/<br />

2. Extract ไฟล์ Rights ไปไว้ที่ www/<strong>Yii</strong>Training/protected/modules<br />

3. ที่ไดเรคทอรี่ www/<strong>Yii</strong>Training/protected/config/main.php แก้ไข config ดังนี้<br />

1. ที่ 'import' => array(), แก้ไขดังรูปที่ 13-2<br />

รูปที่ 13-2 แสดงการแก้ไข import ใน config


55<br />

2. ที่ 'modules' => array(), แก้ไขดังรูปที่ 13-3<br />

รูปที่ 13-3 แสดงการแก้ไข modules ใน config<br />

3. ที่ 'components' => array(), เพิ่มค าสั่งดังนี้<br />

3.1 เพิ่มค าสั่ง 'user'=>array( ), ดังรูปที่ 13-4<br />

รูปที่ 13-4 แสดงการเพิ่มค าสั่ง 'user'=>array( ), ใน components<br />

3.2 เพิ่มค าสั่ง 'authManager'=>array( ), ดังรูปที่ 13-5<br />

รูปที่ 13-5 แสดงการเพิ่มค าสั่ง 'authManager'=>array( ), ใน components<br />

4. โดยสรุปการแก้ไข Config มีลักษณะดังรูปที่ 13-6


56<br />

รูปที่ 13-6 แสดงรูปแบบการแก้ไข Config ทั้งหมด<br />

ที่มา : Christoffer Niska. (2011,1 November), <strong>Yii</strong>-Rights documentation Version 1.2.0, หน้า 4.<br />

4. แก้ไข RightsModule ให้ตรงกับ Class ของ Model ที่ใช้งาน โดยที่ไดเรคทอรี่<br />

www/<strong>Yii</strong>Training/protected/modules/Rights/RightsModule.php ภ า ย ใน Class RightsModule<br />

แก้ไขดังนี้<br />

1. แก้ไข $userClass ให้ตรงกับชื่อ Class ของ Model ที่ใช้ในการ Login จาก<br />

ตัวอย่าง Model ที่ใช้ในการ Login คือ Model UserLogin โดยแก้ไขดังรูปที่ 13-7<br />

รูปที่ 13-7 แสดงการแก้ไข $userClass<br />

2. แก้ไข $userIdColumn โดยให้ใช้ชื่อเดียวกับ Column ที่เก็บรหัสผู้ใช้ จาก<br />

ตัวอย่าง Column ที่ใช้คือ id_user ดังรูปที่ 4-1<br />

รูปที่ 13-8 แสดงการแก้ไข $userIdColumn


57<br />

3. แก้ไข $userNameColumn โดยให้ใช้ชื่อเดียวกับ Column ที่เก็บชื่อผู้ใช้ จาก<br />

ตัวอย่าง Column ที่ใช้คือ username ดังรูปที่ 13-9<br />

รูปที่ 13-9 แสดงการแก้ไข $userNameColumn<br />

4. เมื่อแก้ไข config ต่าง ๆ เรียบร้อยแล้ว ให้ Admin ท าการ Login เข้าสู่ระบบ แต่<br />

เมื่อAdmin ท าการ Login เข้าสู่ระบบแล้วจะเกิด Error ขึ้นดังรูปที่ 13-10 ซึ่งสาเหตุเกิดจาก<br />

ตารางต่าง ๆ ของ Rights Extension ยังไม่ได้ถูกสร้าง<br />

รูปที่ 13-10 แสดงการเกิด Error<br />

5. เข้า ไปที่ http://localhost/<strong>Yii</strong>Training/index.php/rights เพื่อเข้าสู่การติดตั้ง<br />

Rights Extension ซึ่งแสดงดังรูปที่ 13-11 ให้ Admin คลิกที่ Yes เพื่อติดตั้ง


58<br />

รูปที่ 13-11 แสดงหน้ายืนยันการติดตั้ง<br />

6. เมื่อติดตั้งเรียบร้อยจะแสดงผลดังรูปที่ 13-12<br />

รูปที่ 13-12 แสดงหน้าการติดตั้งส าเร็จ<br />

5. เมื่อติดตั้งเรียบร้อยแล้ว ให้กลับไปปิดการติดตั้งเพื่อไม่ให้การใช้งาน Rights กลับเข้าสู่<br />

หน้าติดตั้งอีก โดยไปที่ www/<strong>Yii</strong>Training/protected/config/main.php ภายใต้ 'modules'=>array( ),<br />

แก้ไขดังรูปที่ 13-13


59<br />

รูปที่ 13-13 แสดงการแก้ไขการตั้งค่า Rights<br />

7. เมื่อแก้ไขการตั้งค่า Rights เป็นที่เรียบร้อยแล้วสามารถเรียกใช้งาน Rights Extension ได้<br />

ที่ http://localhost/<strong>Yii</strong>Training/index.php/rights ซึ่งจะแสดงผลดังรูปที่ 13-14<br />

รูปที่ 13-14 แสดงหน้า Rights<br />

ส าหรับการคู่มือการใช้งาน Right Extension นั้น สามารถดาวน์โหลดได้ที่<br />

http://yii-rights.googlecode.com/files/yii-rights-doc-1.2.0.pdf


14. การใช้ extension MbMenu เพื่อก าหนดรูปแบบการแสดงเมนูแบบ DropdownList<br />

Mbmenu เป็น Extension เสริมส าหรับที่ช่วยในการท า Dropdown Menu เพื่อให้<br />

ผู้พัฒนาโปรแกรมมีความสะดวกรวดเร็วในการพัฒนาโปรแกรม อีกทั้งยังมีรูปแบบการแสดงผลที่<br />

สวยงาม โดยการท า Dropdown Menu มีวิธีการดังนี้<br />

1. ดาวน์โหลด extension mbmenu ที่ http://www.yiiframework.com/extension/mbmenu<br />

ดังรูปที่ 14-1<br />

60<br />

รูปที่ 14-1 แสดงหน้าดาวน์โหลด extension mbmenu<br />

2. ท าการแตกไฟล์ที่ดาวน์โหลดเก็บไว้ที่ไดเรคทอรี่ www/<strong>Yii</strong>Training/protected/<br />

extensions<br />

3. เรียกใช้ extension mbmenu<br />

1. ไปที่ไดเรคทอรี่ www/<strong>Yii</strong>Training/protected/views/layouts/main.php ปิดค าสั่ง<br />

widget CMenu หรือ ลบค าสั่ง widget CMenu แล้วเพิ่มค าสั่งดังรูปที่ 14-2


61<br />

รูปที่ 14-2 แสดงค าสั่ง Widget MbMenu<br />

2. แก้ไข เป็น <br />

3. เมื่อแก้ไขแล้วจะมีการเปลี่ยนแปลงรูปแบบการแสดงผลดังนี้<br />

Menu ที่ใช้ค าสั่ง Widget CMenu แสดงดังรูปที่ 14-3<br />

รูปที่ 14-3 แสดงรูปแบบ Menu ที่ใช้ค าสั่ง Widget CMenu


62<br />

Menu ที่ใช้ค าสั่ง Widget MbMenu แสดงดังรูปที่ 14-4<br />

15. การก าหนดการมองเห็นเมนู<br />

รูปที่ 14-4 แสดงรูปแบบ Menu ที่ใช้ค าสั่ง Widget MbMenu<br />

การก าหนดการมองเห็นเมนูนั้น เป็นการก าหนดสิทธิการใช้งานในเมนู โดยการก าหนด<br />

สิทธินั้นสามารถก าหนดได้ทั้งเมนูแบบ CMenu และ MbMenu ซึ่งการก าหนดการมองเห็นนั้น หาก<br />

ต้องการก าหนดเมนูเฉพาะส าหรับ Admin ควรท าการติดตั้ง Rights Extension ด้วย การก าหนดการ<br />

มองเห็นเมนูมีวิธีการดังนี้<br />

ตัวอย่าง การก าหนดรูปแบบการมองเห็นเมนูด้วย Widget CMenu โดยใช้การยกตัวอย่าง<br />

การแสดงผลเมนู Contact ซึ่งมีวิธีการดังนี้<br />

1. ท าการสร้างสมาชิกใหม่ 1 สมาชิก และใช้ account ที่เป็น Admin แก้ไขให้สมาชิกใหม่<br />

นั้นเป็น Authenticated คือเป็นสมาชิกธรรมดา<br />

2. ที่ www/<strong>Yii</strong>Training/protected/views/layout/main.php ก าหนดรูปแบบการมองเห็นเมนู<br />

Contact โดยให้ผู้ใช้ที่เป็น Authenticated และAdminสามารถมองเห็นได้ มีวิธีการดังรูปที่ 4-1<br />

รูปที่ 15-1 แสดงการก าหนดรูปแบบการมองเห็นเมนู


63<br />

3. เมื่อก าหนดรูปแบบแล้ว จะมีรูปแบบการแสดงผลดังนี้<br />

- การแสดงผลเมนูของผู้ใช้ทั่วไปมีรูปแบบการแสดงผล ดังรูปที่ 15-2<br />

รูปที่ 15-2 แสดงผลเมนูของผู้ใช้ทั่วไป<br />

- การแสดงผลเมนูของผู้ใช้ที่เป็น Authenticated และAdminเมื่อท าการ Loginแล้ว<br />

จะมีรูปแบบการแสดงผล ดังรูปที่ 15-3<br />

รูปที่ 15-3 แสดงผลเมนูของผู้ใช้ที่เป็น Authenticated และAdmin<br />

การก าหนดรูปแบบการมองเห็น มีด้วยกัน แบบ คือ<br />

1. การก าหนดการมองเห็น เฉพาะผู้ใช้ทั่วไป ใช้ค าสั่งดังรูปที่ 15-4<br />

รูปที่ 15-4 แสดงการใช้ค าสั่งก าหนดการมองเห็นเฉพาะผู้ใช้ทั่วไป


64<br />

15-5<br />

2. การก าหนดการมองเห็น เฉพาะผู้ใช้ที่เป็น Authenticated และAdmin ใช้ค าสั่งดังรูปที่<br />

รูปที่ 15-5 แสดงการใช้ค าสั่งก าหนดการมองเห็นเฉพาะผู้ใช้ที่เป็น Authenticated และAdmin<br />

3. การก าหนดการมองเห็น เฉพาะผู้ใช้ที่เป็น Authenticated ใช้ค าสั่งดังรูปที่ 15-6<br />

รูปที่ 15-6 แสดงการใช้ค าสั่งก าหนดการมองเห็นเฉพาะผู้ใช้ที่เป็น Authenticated<br />

4. การก าหนดการมองเห็น เฉพาะผู้ใช้ที่เป็น Admin ในส่วนนี้ควรท าการติดตั้ง Rights<br />

Extension เพื่อความสะดวกในการก าหนดการใช้งาน โดยใช้ค าสั่งดังรูปที่ 15-7<br />

รูปที่ 15-7 แสดงการใช้ค าสั่งก าหนดการมองเห็นเฉพาะผู้ใช้ที่เป็น Admin


65<br />

บรรณานุกรม<br />

Christoffer Niska. (2011,1 November), <strong>Yii</strong>-Rights documentation Version 1.2.0, หน้า 4.<br />

แหล่งรวมการตอบปัญหากระทู้ ชุมชน <strong>Yii</strong> <strong>Framework</strong> ในประเทศไทย (ออนไลน์)<br />

สามารถเข้าถึงได้จาก : http://www.yii.in.th/form/<br />

(วันที่สืบค้นข้อมูล : 23 พฤศจิกายน 2554)<br />

แหล่งรวมการตอบปัญหากระทู้ เว็บไซต์ <strong>Yii</strong> <strong>Framework</strong> (ออนไลน์)<br />

สามารถเข้าถึงได้จาก : http://www.yiiframework.com/ forum/<br />

(วันที่สืบค้นข้อมูล : 19 มกราคม 2555)<br />

แหล่งศึกษาการใช้งาน <strong>Yii</strong> <strong>Framework</strong> (ออนไลน์)<br />

สามารถเข้าถึงได้จาก : http://www.yiiframework.com<br />

(วันที่สืบค้นข้อมูล : 19 มกราคม 2555)


ภาคผนวก<br />

66


67<br />

ภาคผนวก ก<br />

ปัญหา Error<br />

ปัญหาที่ 1 Config<br />

DbConnect_Failed ดังรูปที่ ก-1<br />

รูปที่ ก-1 แสดงการเกิด Error DbConnect_Failed<br />

สาเหตุ เกิดจากการเชื่อมต่อฐานข้อมูล หรือ การรองรับฐานข้อมูล<br />

การแก้ปัญหา<br />

1. ตรวจสอบใน C:\AppServ\www\<strong>Yii</strong>Training\protected\config\main.php ในส่วนของ<br />

'db' ว่า เชื่อมต่อฐานข้อมูลถูกต้องหรือไม่<br />

2. ตรวจสอบการรองรับฐานข้อมูล โดยสามารถตรวจสอบได้ที่<br />

http://localhost/yii/requirements/ หาก PDO MySQL extension แสดงเป็น Warning ให้แก้ไขดังนี้<br />

2.1 ที่ไดเรคทอรี่ C:\Windows\php.ini ลบ Comment [;] ที่บรรทัด<br />

extension=php_pdo_mysql.dll<br />

2.2 หลังจากนั้นท าการ Save และ Restart เครื่องใหม่


68<br />

ปัญหาที่ 2 Config<br />

Error 403 code Generator ดังรูปที่ ก-2<br />

รูปที่ ก-2 แสดงการเกิด Error 403 code Generator<br />

สาเหตุ เกิดจากไม่อนุญาตให้ใช้งาน (ปัญหาที่เกิดจากการท างานบน Server)<br />

การแก้ปัญหา<br />

ที่ไดเร็คทอรี่ C:\AppServ\www\<strong>Yii</strong>Training\protected\config\main.php แก้ไข<br />

'gii'=>array( )ให้ ipFilters มีลักษณะดังนี้ 'ipFilters'=>false,<br />

ปัญหาที่ 3 การแสดงผลแบบ CListView<br />

คลิก Link Update แล้วเกิด Error 400 Your request is invalid. ดังรูปที่ ก-3<br />

รูปที่ ก-3 แสดงการเกิด เกิด Error 400


69<br />

สาเหตุ ปัญหาเกิดจาก Link ที่ Generate ไม่สอดคล้องกับ การเรียกใช้แบบ CListView เนื่องจาก<br />

ฟังก์ชั่น View ถูกแก้ไขให้มีลักษณะการแสดงผลเป็น CListView<br />

การแก้ปัญหา<br />

หลังจาการแก้ปัญหา ฟังก์ชั่น view ได้ถูกแก้ไขให้มีการเก็บ session ดังนั้น จึงน า session ที่<br />

ถูกเก็บมาใช้งาน โดยการแก้ไขดังนี้<br />

1. ประกาศใช้ session ที่ บรรทัดแรกของ views/document/view.php ดังรูปที่ ก-4<br />

รูปที่ ก-4 แสดงการประกาศใช้ session<br />

2. แก้ไข Link ภายใต้ $this->menu=array( ); ดังรูปที่ ก-5<br />

รูปที่ ก-5 แสดงการแก้ไข Link<br />

โดยมีรายละเอียดการแก้ไข Link ดังรูปที่ ก-6<br />

รูปที่ ก-6 แสดงรายละเอียด Link


70<br />

ปัญหาที่ 4 การสร้างฟอร์ม ส าหรับอัพโหลด<br />

การ Update หน้า Document ไม่ได้<br />

สาเหตุ เกิดจากการไม่ได้แก้ไขให้ฟังก์ชั่น Update ของ DocumentController สามารถอัพโหลดไฟล์<br />

ได้<br />

การแก้ปัญหา<br />

แก้ไขค าสั่งในฟังก์ชั่น update ให้มีลักษณะเดียวกันกับฟังก์ชั่น create<br />

ปัญหาที่ 5 การสร้างฟอร์มส าหรับอัพโหลดรูป<br />

Cannot modify header information - headers already sent by (output started at<br />

C:\AppServ\www\<strong>Yii</strong>Training\protected\models\Image.php:1) ดังรูปที่ ก-7<br />

รูปที่ ก-7 แสดงการเกิดเกิดปัญหาการเรียกหน้าแสดงผล


71<br />

สาเหตุ เกิดจากการเรียกหน้าแสดงผลหลังจากอัพโหลดรูปภาพ ดังรูปที่ ก-8<br />

การแก้ปัญหา<br />

รูปที่ ก-8 แสดงบรรทัดที่เกิดปัญหา<br />

ปัญหาที่เกิดขึ้นยังไม่สามารถหาวิธีการแก้ไขได้ ซึ่งปัญหานี้เกิดขึ้นภายในฟังก์ชั่น create<br />

ของ คลาส ImageController เท่านั้น<br />

ปัญหาที่ 6 การใช้ extension Rights<br />

<strong>Yii</strong>Base::include(User.php) [yiibase.include]: failed to<br />

open stream: No such file or directory ดังรูปที่ ก-9


72<br />

รูปที่ ก-9 แสดงการเกิดปัญหา <strong>Yii</strong>Base::include(User.php)<br />

สาเหตุ เกิดจากยังไม่ได้สร้าง Model User หรือ Model ที่ใช้ในการ Login นั้น ไม่ได้ชื่อ User (โดย<br />

ปกติ Extension Rights จะตั้งค่าเริ่มต้น ให้ใช้คู่กับ Model User)<br />

การแก้ปัญหา<br />

ที่ไดเรคทอรี่ www/<strong>Yii</strong>Training/protected/modules/rights/RightsModule.php ใช้แก้ไขดังนี้<br />

1. แก้ไข $userClass ให้ตรงกับชื่อ Class ของ Model ที่ใช้ในการ Login จากตัวอย่าง Model<br />

ที่ใช้ในการ Login คือ Model UserLogin โดยแก้ไขดังรูปที่ ก-10<br />

รูปที่ ก-10 แสดงการแก้ไข $userClass<br />

2. แก้ไข $userIdColumn โดยให้ใช้ชื่อเดียวกับ Column ที่เก็บรหัสผู้ใช้ จากตัวอย่าง<br />

Column ที่ใช้คือ id_user ดังรูปที่ ก-11


73<br />

รูปที่ ก-11 แสดงการแก้ไข $userIdColumn<br />

3. แก้ไข $userNameColumn โดยให้ใช้ชื่อเดียวกับ Column ที่เก็บชื่อผู้ใช้ จากตัวอย่าง<br />

Column ที่ใช้คือ username ดังรูปที่ ก-12<br />

รูปที่ ก-12 แสดงการแก้ไข $userNameColumn

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!