คู่มือการใช้งาน yii...
TRANSCRIPT
1
คมอการใชงาน Yii Framework
Yii Framework เปน Framework ทจะชวยใหนกพฒนาโปรแกรม สามารถพฒนาโปรแกรมไดสะดวกและรวดเรวขน โดยคมอนไดรวบรวมขนตอนและวธการตาง ๆ ในการพฒนาระบบงานใหผทสนใจไดศกษา โดยมหวขอตาง ๆ ดงน
1. การดาวนโหลดและตดตง 2. การตงคา Config 3. Code Generate 4. การสรางหนาสมครสมาชก 5. การท าระบบ Login โดยดงขอมล User จากฐานขอมล 6. เกยวกบ Session 7. การสรางแบบฟอรมส าหรบกรอกขอมล
7.1 การใชงาน session 7.2 การก าหนดขนาด Textbox 7.3 การสราง Radio Button 7.4 การสราง Textarea 7.5 การสราง DropdownList แบบดงขอมลจากฐานขอมล 7.6 การสราง DropdownList แบบสรางตวเลอกในแบบฟอรม
8. การ Join ตาราง 8.1 การแสดงผลแบบ CListView 8.2 การแสดงผลแบบ CGridView
9. การสรางฟอรมส าหรบอพโหลดและการแสดงผลส าหรบดาวนโหลด 10. การสรางฟอรมส าหรบอพโหลดรปและการแสดงผล 11. การใช DateTimePicker ดวย Extension CJuiDateTimePicker 12. การใช extension jquery-gmap 13. การตดตง extension Rights 14. การใช entension MbMenu เพอก าหนดรปแบบการแสดงเมนแบบ DropdownList 15. การก าหนดการมองเหนเมน
2
1. การดาวนโหลดและตดตง
การดาวนโหลดและตดตงมวธการดงตอไปน
1. ดาวนโหลด Yii Framework เวอรชน 1.1.10 ไดท http://www.yiiframework.com/ download/ ดงรปท 1-1
รปท 1-1 แสดงหนาเวบไซตส าหรบดาวนโหลด yii framework
2. Extract ไฟลทดาวนโหลดมา ไวภายใตไดเรคทอร C:/AppServ/www/ 3. เ มอ Extract ไฟลแลว ให เข าไปตรวจความตองการของระบบ โดยเขาไปท
http://localhost/yii/requirements ดงรปท 1-2
3
รปท 1-2 แสดงการตรวจสอบความตองการของระบบ
4. หาก PDO MySQL extension แสดงเปน Warning ใหไปแกไขทC:\window\php.ini
4.1 ท าการลบ comment (;) ทบรรทด extension=php_pdo.dll และ extension = php_pdo_mysql.dll หลงจากนนท าการ save และ restart เครองใหม
5. หลงจากนนใหท าการสรางโปรเจคงาน ทมชอวา YiiTraining โดยมวธการดงน
5.1 เปด cmd.exe แลวไปทไดเรคทอร AppServ/www/yii/framework ดวยค าสง cd C:/AppServ/www/yii/framework
5.2 ภายใตไดเรคทอร C:/AppServ/www/yii/framework/ พมพ php yiic webapp ../../ YiiTraining เพอสรางโปรเจค ictExpert ดงรปท 1-3
4
รปท 1-3 แสดงการสรางโปรเจค YiiTraining
6. เมอสรางโปรเจค YiiTraining เปนทเรยบรอยแลว สามารถเขาไปดหนาเวบแอพพลเคชนทเราสรางขนไดท http://localhost/YiiTraining/index.php ซงมหนาแสดงผลดงรปท 1-4
รปท 1-4 แสดงหนาหลกของเวบแอพพลเคชน
2. การตงคา Config
หลงจากทไดสรางโปรเจค YiiTraining แลว ตองท าการแกไขคา Config เพอใหสามารถใชงานได ซงมวธการแกไขดงน
1. ภายใตไดเรคทอร www/YiiTraining/protected/config/main.php จะประกอบดวยสวนตางๆ ดงน
1.1 สวนของชอ เวบแอพพลเคชน สามารถแกไขไดท 'name'=> YiiTraining ', ดงรปท 2-1
5
รปท 2-1 แสดงสวนแกไขหวขอเวบแอพพลเคชน
1.2 สวนของ gii สวนนเปนเครองมอทใชในการ Generate โคดตาง ๆ เพอใชใน
การสรางเวบแอพพลเคชน แกไขโดยการลบ comment ของ gii ออกและแกไข password
ตามทเราตองการ ดงรปท 2-2
รปท 2-2 แสดงสวนแกไข gii
1.3 สวนของ Component ใหลบ comment ของ urlManager ออก เพอเปนการ format การเรยกใช url ใหม ดงรปท 2-3
รปท 2-3 แสดงสวนแกไข urlManager
6
โดยเมอลบ comment ออก จะเกดความแตกตางดงน
- การเรยกใช gii จากเดม การเรยกใชจะมลกษณะดงน http://localhost/YiiTraining/index.php?r=gii
- เมอมการลบ comment ออก การเรยกใชจะมลกษณะดงน http://localhost/YiiTraining/index.php/gii
1.4 ตงคาการเชอมตอกบฐานขอมลดงน
1. ใส comment ในบรรทดตอไปน เพอเปนการปดการเชอมตอกบ
ฐานขอมลเดม ดงรปท 2-4
รปท 2-4 แสดงสวนแกไขการเชอมตอฐานขอมลทตองใส comment
2. ลบ comment ในบรรทดตอไปน เพอเปนการเปดการเชอมตอกบฐานขอมลทตองการ โดยเมอลบ comment ออก จะตองแกไขขอมล ดงรปท 2-5
2.1 แกไข host และชอฐานขอมลในบรรทด connectionString 2.2 แกไข username ทใช เชอมตอกบฐานขอมลในบรรทด
username โดย username ตองตรงกบ username ท ใชในการ login ฐานขอมล
2.3 แกไข password ทใช เชอมตอกบฐานขอมลในบรรทด password โดย password ตองตรงกบ password ท ใชในการ login ฐานขอมล
รปท 2-5 แสดงสวนแกไขการเชอมตอฐานขอมล
7
2. หลงจากแกไข Config เปนท เรยบรอยแลว จะสามารถเขาใชงาน Gii ไดท http://localhost/YiiTraining/index.php/gii โดยหนา Gii ใชในการ Generate โคดทใชในการสรางเวบแอพพลเคชนได โดยจะตอง login กอนเพอเขาไปยงหนา Code Generator ซงหนา login มการแสดงผล ดงรปท 2-6
รปท 2-6 แสดงหนา login ของ Gii
เมอ login เปนท เรยบรอยแลว จะเขาสหนา Code Generator ซงมรปแบบการแสดงผล ดงรปท 2-7
รปท 2-7 แสดงหนา Code Generator
8
3. Code Generate
ใน Code Generator ประกอบไปดวย 5 สวนดงน
- Controller Generator - Crud Generator - Form Generator - Model Generator - Module Generator
Controller Generator
คอ สวนทใชในการ Generate Controller ตามรปแบบ MVC (Model-View-Controller) ซงController Generator มรปแบบการแสดงผล ดงรปท 3-1
รปท 3-1 แสดงหนา Controller Generator
Crud Generator
Crud ยอมาจาก (Create – Read – Update – Delete) คอ สวนทท าใหการ Generate โคด ใหสามารถเพม ลบ แกไข ขอมลได โดยทไมตองเขยนโคดเอง ซงจะสามารถใช Crud Generator ไดกตอเมอ มการ Generate Model ทตองการแลวเทานน ซง Crud Generator มรปแบบการแสดงผล ดงรปท 3-2
9
รปท 3-2 แสดงหนา Crud Generator
Form Generator
คอ สวนทท าการสรางหนาแบบฟอรมทใชในการกรอกขอมล โดยจะถกเรยกใชโดย Controller รปแบบฟอรมท Generate ออกมานนจะมรปแบบมาจาก Model ทไดสรางไว ซง Form Generator มรปแบบการแสดงผล ดงรปท 3-3
รปท 3-3 แสดงหนา Form Generator
10
Model Generator
คอ สวนทเชอมตอกบฐานขอมล โดยการสราง Model นน จะมการอางถงตารางทอยในฐานขอมลดวย ซง Model Generator มรปแบบการแสดงผล ดงรปท 3-4
รปท 3-4 แสดงหนา Model Generator
Modules Generator
คอหนวยซอฟตแวรในตวเองทประกอบดวย models, views, Controllers และสวนประกอบทสนบสนนอน ๆ ในหลาย ๆ ดานโมดลคลายกบโปรแกรม แตมความแตกตางทส าคญคอโมดลจะไมสามารถใชงานไดในตวเดยวและมนจะตองอยภายในของแอพลเคชน ผใชสามารถเขาถงการควบคมในโมดลเหมอนทพวกเขาท ากบตวควบคมในการใชงานปกต
โมดลจะมประโยชนในสถานการณตางๆ ส าหรบโปรแกรมขนาดใหญ โดยอาจแบงโมดลออกเปนโมดลตาง ๆ แตละการพฒนาและมการเกบรกษาไวตางหาก คณลกษณะบางอยางทใชกนทวไปเชน การจดการผใช การจดการความคดเหน อาจไดรบการพฒนาในแงของโมดลเพอใหสามารถน ากลบมาไดอยางงายดายในโครงการในอนาคต Model Generator มรปแบบการแสดงผล ดงรปท 3-5
11
รปท 3-5 แสดงหนา Model Generator
4. การสรางหนาสมครสมาชก
User Login เปนตารางส าหรบเกบขอมล user และ password ส าหรบใชในการ Login โดยหนาสมครสมาชกมวธการท าดงตอไปน
1. Generate Model UserLogin
เปนการ Generate Model มาจากตาราง user_login เพอใชในการตดตอกบฐานขอมล โดยการ Generate Model UserLogin มวธการดงรปท 4-1
1. ท http://localhost/YiiTraining/index.php/gii เลอก Model Generator ใสชอตารางท Table Name และตงชอ Model Class
2. คลกท Preview หลงจากนนจะแสดง File ซงสามารถแสดงรปแบบ Source Code ได
3. คลกท Generate เพอสราง File
12
รปท 4-1 แสดงการ Generate Model UserLogin
4. เมอ Generate แลวสามารถดโคดไดทไดเรคทอร www/YiiTraining/protected/
models/UserLogin.php
2. Generate Crud UserLogin
หลงจากทไดสราง Model UserLogin เปนทเรยบรอยแลว จะท าการสราง Controller และ View โดยใช Crud Generator เพอสรางรปแบบการเพม ลบ แกไขขอมล โดยการ Generate มวธการดงรปท 4-2
1. ท http://localhost/YiiTraining/index.php/gii เลอก Crud Generator ใสชอ Model และ Controller
2. คลกท Preview หลงจากนนจะแสดง File ซงสามารถแสดงรปแบบ Source Code ได
3. คลกท Generate เพอสราง File
13
รปท 4-2 แสดงการ Generate Crud UserLogin
4. เมอ Generate แลวจะมโคดถกสรางขนมา 2 สวน คอ Controller และ View โดย
ไฟลท เปน Controller สามารถดโคดไดท ได เรคทอร www/YiiTraining/protected/
controller/UserLoginController.php และไฟลทเปน View สามารถดโคดไดทไดเรคทอร
www/YiiTraining/protected/views/userLogin/
3. แกไข Controller เพอใหผใชทวไปสามารถกรอกขอมลได มวธการดงน
1. ทไดเรคทอร www/YiiTraining/protected/controllers/UserLoginController.php ในฟงกชน accessRules สวนนจะเปนการก าหนดสทธของผใชงานในแตละระดบ ซงไดแก
- สวนของผใชทวไป (users) สญลกษณทใช คอ * - สวนของสมาชก (member) สญลกษณทใช คอ @ - สวนของผดแลระบบ (admin) สญลกษณทใช คอ admin
ซงการก าหนดสทธของผใชจะมลกษณะดงรปท 4-3
14
รปท 4-3 แสดงรปแบบการก าหนดสทธของผใช
2. ก าหนดสทธของผใชทวไปใหสามารถใชสทธในการ create ได จากเดม สมาชกเทานนทจะสามารถ create ได ซงมวธการดงน
2.1 เพม 'create' ในสวนของการก าหนดสทธใหกบผใชทวไป และ ลบ 'create' ในสวนของสมาชก เพอปองกนไมใหสมาชกสามารถกรอกขอมลเพมไดอก โดยแกไข ดงรปท 4-4
รปท 4-4 แสดงการก าหนดสทธ create ใหกบผใช
3. ท ได เรคทอร www/YiiTraining/protected/views/accountLogin/_form.php แกไขสวนตาง ๆ ดงน
3.1 แกไขรปแบบการกรอกข อ มลของ Password จาก textField เปน passwordField เพอใหการกรอกรหสผานมความปลอดภยเพมมากขน โดยแกไขค าสง ดงรปท 4-5
15
รปท 4-5 แสดงการก าหนด passwordField
3.2 เ ม อแ ก ไข เร ยบ ร อย แ ล ว ผ ใ ชท ว ไปสา มา รถสมค รสมา ช ก ได ท http://localhost/YiiTraining/index.php/userlogin/create ซงมรปแบบการแสดงผล ดงรปท 4-6
รปท 4-6 แสดงแบบฟอรมหนา create ของ UserLogin
16
5. การท าระบบ Login โดยดงขอมล User จากฐานขอมล
1. ทไดเรคทอร www/YiiTraining/protected/components/UserIdentity.php ใหแกไข ดงน
1. ประกาศตวแปร private $id_user; ภายใต Class UserIndentity 2. แกไขฟงกชน authenticate ใหเปนดงรปท 5-1
รปท 5-1 แสดงการแกไขฟงกชน authenticate
2. ท ได เรคทอร www/YiiTraining/protected/models/UserLogin.php เ พม ฟง กช น validatePassword ดงรปท 5-2
รปท 5-2 แสดงฟงกชน validatePassword
3. ทดลองระบบ Login โดยใชชอ user ท มอยในฐานขอมลไดท http://localhost/ YiiTraining/index.php ดงรปท 5-3
17
รปท 5-3 แสดงการ Login โดย user
6. เกยวกบ session
การประกาศ session เพอเกบ id_user ของผใชงาน โดยจะท าการ เกบ id_user ของผใชในขณะทผใชท าการ Login ซงมวธการดงตอไปน
1. ทไดเรคทอร www/YiiTraining/protected/components/UserIdentity.php เ พมค าสง Yii::app()-> session['user'] = $user-> id_user; เพอน าคา id_user ไปเกบไวใน อารเรย session ทชอวา ID_User ดงรปท 6-1
รปท 6-1 แสดงการสราง session
18
2. การเรยกใชงาน session ท าไดโดย ประกาศตวแปร 1 ตว เพอเกบ session โดยใชค าสงดงน $ID_User = Yii::app()->session['ID_User']; เปนการเกบคา session['user'] ไวในตวแปร $ID_User ดงรปท 6-2
รปท 6-2 แสดงการเรยกใช session
7. การสรางแบบฟอรมส าหรบกรอกขอมล
การสรางแบบฟอรมส าหรบกรอกขอมลนน ไดรวบรวมหวขอเรองตาง ๆ เขาไวดวยกน โดยใชการแบบฟอรมของ User Detail ในการรวบรวมขอมล ซงมหวขอตาง ๆ ดงน
การสรางแบบฟอรม User Detail เพอใชในการแสดงผล และ เกบขอมล
1. Generate Model UserDetail
เปนการ Generate Model มาจากตาราง user_detail เพอใชในการตดตอกบฐานขอมล โดยการ Generate Model UserDetail มวธการ ดงรปท 7-1
1. ท http://localhost/YiiTraining/index.php/gii เลอก Model Generator ใสชอตารางท Table Name และตงชอ Model Class
2. คลกท Preview หลงจากนนจะแสดง File ซงสามารถแสดงรปแบบ Source Code ได
3. คลกท Generate เพอสราง File
19
รปท 7-1 แสดงการ Generate Model UserDetail
4. เมอ Generate แลวสามารถดโคดไดทไดเรคทอร www/YiiTraining/protected/ models/UserDetail.php
2. Generate Crud UserDetail
หลงจากทไดสราง Model UserDetail เปนทเรยบรอยแลว จะท าการสราง Controller และ View โดยใช Crud Generator เพอสรางรปแบบการเพม ลบ แกไขขอมล โดยการ Generate มวธการ ดงรปท 7-2
1. ท http://localhost/YiiTraining/index.php/gii เลอก Crud Generator ใสชอ Model และ Controller
2. คลกท Preview หลงจากนนจะแสดง File ซงสามารถแสดงรปแบบ Source Code ได
3. คลกท Generate เพอสราง Code File
20
รปท 7-2 แสดงการ Generate Crud userDetail
4. เมอ Generate แลวจะมโคดถกสรางขนมา 2 สวน คอ Controller และ View โดยไฟลท เปน Controller สามารถดโคดไดท ได เรคทอร www/YiiTraining/protected/ controller/userDetailController.php และไฟลทเปน View สามารถดโคดไดทไดเรคทอร www/YiiTraining/protected/views/userDetail/
เมอได Generate เพอสรางแบบฟอรม User Detail เปนทเรยบรอยแลว ตอไปจะเปนการยกตวอยางการจดการกบแบบฟอรมในรปแบบตาง ๆ ดงน
การใชงาน Session
การใชงาน Session เปนการสาธตการน าSession เขามาใชงานหลงจากทไดมการเกบ Session แลวในหวขอเรอง เกยวกบ Session โดยการน า Session มาใชงานมวธการดงตอไปน
1. ประกาศ ตวแปร session ในบรรทดแรกของไดเรคทอร www/YiiTraining/protected/ views/userDetail/_form.php โดยใชค าสง ดงรปท 7-3
รปท 7-3 แสดงการประกาศตวแปรเพอเรยกใช session
21
2. ก าหนดคาลงไปใน Text field ของ id_user โดยเพมค าสง array('value'=>$ID_User) ลงไปในค าสง textField ดงรปท 7-4
รปท 7-4 แสดงการก าหนดคาใน textField id_user
3. เ มอคาในTextbox เรยบรอยแลว สามารถดการแสดงผลได ท http://localhost/ YiiTraining/index.php/userDetail/create/ ในการเขาถงหนา UserDetail นน ผใชตองท าการ Login เขาสระบบกอนจงจะสามารถดรปแบบการแสดงผลได โดยการแสดงผลการก าหนดคาใน Textbox โดยใช Session มรปแบบการแสดงผล ดงรปท 7-5
รปท 7-5 แสดงการก าหนดคาใน textField
22
การก าหนดขนาด Textbox
การก าหนดขนาด Textbox เปนการก าหนดขนาดความกวางของ Textbox และปรมาณของตวอกษรทใสใน Textbox โดยการก าหนดขนาดนนจะก าหนดความกวาง คอ size และจ านวนตวอกษรทรบคอ maxlength ซงการก าหนดคาไดแสดงดงรปท 7-6
รปท 7-6 การก าหนดขนาด Textbox
การสราง Radio Button
ทไดเรคทอร www/YiiTraining/protected/views/userDetail/_form.php ก าหนดรปแบบการแสดงผลของ gender จาก Textbox เปน Radio Button ดงรปท 7-7
รปท 7-7 การก าหนด Radio Button
เมอก าหนดรปแบบการแสดงแบบฟอรมเปนทเรยบรอยแลวสามารถ ดรปแบบการแสดงผลไดท http://localhost/YiiTraining/index.php/userdetail/create ซงมรปแบบการแสดงผล ดงรปท 7-8
23
รปท 7-8 การแสดงแบบฟอรม แบบ Radio Button
การสราง Textarea
ทไดเรคทอร www/YiiTraining/protected/views/userDetail/_form.php ก าหนดรปแบบการแสดงแบบฟอรมของ address จาก Textbox เปน TextArea ดงรปท 7-9
โดยตองก าหนด 2 สวนดวยกนคอ - สวนท 1 การก าหนดแบบฟอรมเปน TextArea - สวนท 2 การก าหนดขนาดของ TextArea
รปท 7-9 การก าหนดรปแบบ TextArea
24
เมอก าหนดรปแบบการแสดงแบบฟอรมเปนทเรยบรอยแลวสามารถ ดรปแบบการแสดงผลไดท http://localhost/YiiTraining/index.php/userdetail/create ซงมรปแบบการแสดงผล ดงรปท 7-10
รปท 7-10 การแสดงแบบฟอรม แบบ TextArea
การสราง DropdownList แบบดงขอมลจากฐานขอมล
การสราง DropdownList แบบดงขอมลจากฐานขอมล มวธการ ดงรปท 7-11
1. Generate Model Provice
1. ท http://localhost/YiiTraining/index.php/gii เลอก Model Generator ใสชอตารางท Table Name และตงชอ Model Class
2. คลกท Preview หลงจากนนจะแสดง File ซงสามารถแสดงรปแบบ Source Code ได
3. คลกท Generate เพอสราง File
25
รปท 7-11 แสดงการ Generate Model Province
2. ทไดเรคทอร www/YiiTraining/protected/views/userDetail/_form.php ก าหนดรปแบบการแสดงแบบฟอรมของ Province ดงรปท 7-12
รปท 7-12 แสดงการก าหนดรปแบบ DropdownList แบบดงขอมลจากฐานขอมล
3. เมอก าหนดรปแบบ DropdownList แบบดงขอมลจากฐานขอมลแลว สามารถดรปแบบการแสดงผลไดท http://localhost/YiiTraining/index.php/userdetail/create ซ ง มร ปแบบการแสดงผล ดงรปท 7-13
26
รปท 7-13 การแสดงแบบฟอรม แบบ DropdownList แบบดงขอมลจากฐานขอมล
การสราง DropdownList แบบสรางตวเลอกในแบบฟอรม
ทไดเรคทอร www/YiiTraining/protected/views/userDetail/_form.php ก าหนดรปแบบการแสดงแบบฟอรมของ Type_user ดงรปท 7-14
รปท 7-14 แสดงการก าหนดรปแบบ DropdownList แบบสรางตวเลอกในแบบฟอรม
27
เมอก าหนดรปแบบ DropdownList แบบสรางตวเลอกในแบบฟอรมแลว สามารถดรปแบบการแสดงผลไดท http://localhost/YiiTraining/index.php/userdetail/create ซ ง มร ปแบบการแสดงผล ดงรปท 7-15
รปท 7-15 การแสดงแบบฟอรม แบบ DropdownList แบบสรางตวเลอกในแบบฟอรม
8. การ Join ตาราง และการแสดงผล
ในการ join ตารางนจะท าการ join ระหวางตาราง user_login และ ตาราง user_detail เพอสรางหนา Profile ของสมาชก โดยจะสาธตรปแบบการแสดงผล 2 แบบดวยกน ซงมวธการดงน
สราง Controller Member
การสราง Controller Member มวธการดงรปท 8-1
1. ท http://localhost/YiiTraining/index.php/gii เลอก Controller Generator ใสชอตารางท Controller และ View
2. คลกท Preview หลงจากนนจะแสดง File ซงสามารถแสดงรปแบบ Source Code ได
28
3. คลกท Generate เพอสราง File
รปท 8-1 แสดงการ Generate Controller Member
4. เมอ Generate แลวจะมโคดถกสรางขนมา 2 สวน คอ Controller และ View โดยไฟลทเป น Controller สา มา ร ถด โ ค ด ไ ดท ได เ รค ทอร www/YiiTraining/protected/controllers/ MemberController.php และไฟลท เปน View สามารถดโคดไดทไดเรคทอร www/YiiTraining/ protected/views/member/index.php
การเขยนฟงกชนในการ join ตาราง
เมอท าการ Generate Controller Member เปนทเรยบรอยแลว สามารถ แกไข Controller Member ไดทไดเรคทอร www/YiiTraining/protected/controllers/MemberController.php โดยแกไขฟงกชน actionIndex () เพอใหแสดงผลในหนา index ซงการแกไข ฟงกชน actionIndex () มวธการดงรปท 4-1
29
รปท 8-2 แสดงการแกไขฟงกชน actionIndex()
การแสดงผลแบบ CListView
หลงจากทไดแกไขฟงกชน actionIndex() เปนทเรยบรอยแลว การแสดงผลในรปแบบของ CListView มวธการดงน
1. เรยกใช widget CListView โดยการใชค าสงดงรปท รปท 8-3
รปท 8-3 แสดงการเรยกใช widget CListView
2. ภายใตไดเรคทอร www/YiiTraining/protected/views/member สรางไฟล _view.php เพอใชในการแสดงผล โดยในไฟล _view.php ใชค าสง ดงรปท 8-4
30
รปท 8-4 แสดงการเรยกใช widget CListView
เมอใชค าสง widget CListView และสรางไฟล _view.php เปนทเรยบรอยแลว สามารถดรปแบบการแสดงผลแบบ CListView ไดท http://localhost/YiiTraining/index.php/member/index ซงมรปแบบการแสดงผล ดงรปท 8-5
31
รปท 8-5 แสดงรปแบบการแสดงผลแบบ CListView
การแสดงผลแบบ CGridView
หลงจากทไดแกไขฟงกชน actionIndex() เปนทเรยบรอยแลว การแสดงผลในรปแบบของ CGridView มวธการดงน
ทได เรคทอร www/YiiTraining/protected/views/member/index.php เ รยกใช widget CGridView โดยใชค าสงดงรปท 8-6
32
รปท 8-6 แสดงการเรยกใช widget CGridView
เมอท าการเรยกใช widget CGridView แลว สามารถดรปแบบการแสดงผลแบบ CGridView ไดท http://localhost/YiiTraining/index.php/member/index ซงมรปแบบการแสดงผล ดงรปท 8-7
33
รปท 8-7 แสดงรปแบบการแสดงผลแบบ CGridView
9. การสรางฟอรมส าหรบอพโหลดและการแสดงผลส าหรบดาวนโหลด
การสรางฟอรมส าหรบอพโหลดและการแสดงผลส าหรบดาวนโหลดมวธการดงตอไปน
การสรางฟอรมส าหรบอพโหลด
1.Generate Model Document เปนการ Generate Model มาจากตาราง Document เพอใชในการตดตอกบฐานขอมล โดย
การ Generate Model Document มวธการดงรปท 9-1 1. ท http://localhost/YiiTraining/index.php/gii เลอก Model Generator ใสชอ
ตารางท Table Name และตงชอ Model Class 2. คลกท Preview หลงจากนนจะแสดง File ซงสามารถแสดงรปแบบ Source
Code ได 3. คลกท Generate เพอสราง File
34
รปท 9-1 แสดงการ Generate Model Document
4. เมอ Generate แลวสามารถดโคดไดทไดเรคทอร www/YiiTraining/protected/ models/Document.php
2. Generate Crud Document
หลงจากทไดสราง Model Document แลว จะท าการสราง Controller และ View โดยใช Crud Generator เพอสรางรปแบบการเพม ลบ แกไขขอมล โดยการ Generate มวธการ ดงรปท 9-2
1. ท http://localhost/YiiTraining/index.php/gii เลอก Crud Generator ใสชอ Model และ Controller
2. คลกท Preview หลงจากนนจะแสดง File ซงสามารถแสดงรปแบบ Source Code ได
3. คลกท Generate เพอสราง Code File
35
รปท 9-2 แสดงการ Generate Crud Document
4. เมอ Generate แลวจะมโคดถกสรางขนมา 2 สวน คอ Controller และ View โดยไฟลท เปน Controller สามารถดโคดไดท ได เรคทอร www/YiiTraining/protected/ controllers/DocumentController.php และไฟลทเปน View สามารถดโคดไดทไดเรคทอร www/YiiTraining/protected/views/Document/
การแกไขแบบฟอรมส าหรบอพโหลดไฟล
การแกไข Controller Document เพออพโหลดไฟล มวธการดงน
1. สรางไดเรคทอรภายใต www/YiiTraining ชอ Document เพอใชส าหรบเกบไฟลเอกสาร ดง
รปท 9-3
36
รปท 9-3 แสดงการสรางไดเรคทอร Document
2. ท www/YiiTraining/protected/controllers/DocumentController.php แกไขฟงกชน actionCreate( ) ดงน
1. ใชฟงกชน getInstance ของ คลาส CUploadFile ในการอพโหลดไฟล ภายใตค าสง if(isset($_POST['Document'])) ดงรปท 9-4
รปท 9-4 แสดงการใชฟงกชน getInstance
2. เรยกใชฟงกชน saveAs() เพอบนทกเอกสารในไดเรคทอร Document ภายใตค าสง if($model->save()) ดงรปท 9-5
รปท 9-5 แสดงการเรยกใชฟงกชน saveAs()
37
การสรางหนาแสดงผลส าหรบดาวนโหลดเอกสาร
ในการสรางหนาแสดงผลนน จะท าการแกไขรปแบบการแสดงผลของ _view.php ซงเปนสวนทแสดงรายละเอยดของหนา index.php ใหม Link ทสามารถแสดงเอกสารได โดยมวธการดงน
ทได เรคทอร www/YiiTraining/protected/views/document/_view.php แกไขสวนของ Attribute ทชอ document_file เพอสราง Link แสดงเอกสาร ซงมการแกไขค าสง ดงรปท 9-6
รปท 9-6 แสดงการท า Link แสดงเอกสาร
เมอสราง Link แสดงเอกสารเปนท เรยบรอยแลว สามารถดรปแบบการแสดงผลไดท http://localhost/YiiTraining/index.php/Document/index โดยมรปแบบการแสดงผล ดงรปท 9-7
รปท 9-7 แสดงผล Link แสดงเอกสาร
38
เมอคลกท Link เอกสาร จะแสดงผล ดงรปท 9-8
รปท 9-8 แสดงผลเอกสาร
10. การสรางฟอรมส าหรบอพโหลดรปและการแสดงผล
การสรางฟอรมส าหรบอพโหลดรปและการแสดงผลวธการดงตอไปน
การสรางฟอรมส าหรบอพโหลด
1.Generate Model Image
เปนการ Generate Model มาจากตาราง image เพอใชในการตดตอกบฐานขอมล โดยการ Generate Model Image มวธการดงรปท 10-1
39
1. ท http://localhost/YiiTraining/index.php/gii เลอก Model Generator ใสชอตารางท Table Name และตงชอ Model Class
2. คลกท Preview หลงจากนนจะแสดง File ซงสามารถแสดงรปแบบ Source Code ได
3. คลกท Generate เพอสราง File
รปท 10-1 แสดงการ Generate Model Image
4. เมอ Generate แลวสามารถดโคดไดทไดเรคทอร www/YiiTraining/protected/ models/Image.php
2. Generate Crud Document
หลงจากทไดสราง Model Image แลว จะท าการสราง Controller และ View โดยใช Crud Generator เพอสรางรปแบบการเพม ลบ แกไขขอมล โดยการ Generate มวธการ ดงรปท 10-2
1. ท http://localhost/YiiTraining/index.php/gii เลอก Crud Generator ใสชอ Model และ Controller
2. คลกท Preview หลงจากนนจะแสดง File ซงสามารถแสดงรปแบบ Source Code ได
40
3. คลกท Generate เพอสราง Code File
รปท 10-2 แสดงการ Generate Crud Image
4. เมอ Generate แลวจะมโคดถกสรางขนมา 2 สวน คอ Controller และ View โดยไฟลท เปน Controller สามารถดโคดไดท ได เรคทอร www/YiiTraining/protected/ controllers/ImageController.php และไฟลท เปน View สามารถดโคดไดทไดเรคทอร www/YiiTraining/protected/views/image/
การแกไขแบบฟอรมส าหรบอพโหลดไฟลรปภาพ
การแกไข Controller Image เพออพโหลดไฟลรปภาพ
1. สรางไดเรคทอรภายใต www/YiiTraining ชอ images เพอใชส าหรบเกบไฟลรปภาพ ดงรปท 10-3
41
รปท 10-3 แสดงการสรางไดเรคทอร Document
2. ท www/YiiTraining/protected/controllers/ImageController.php แกไขฟงกชน actionCreate() ดงน
1. ใชฟงกชน getInstance ของ คลาส CUploadFile ในการอพโหลดไฟล ภายใตค าสง if(isset($_POST['Document'])) ดงรปท 10-4
รปท 10-4 แสดงการใชฟงกชน getInstance
เรยกใชฟงกชน saveAs() เพอบนทกเอกสารในไดเรคทอร Document ภายใตค า สง if($model->save()) ดงรปท 10-5
42
รปท 10-5 แสดงการเรยกใชฟงกชน saveAs()
ปญหาทพบ : ในฟงกชน actionCreate() มปญหาในสวนทเปนค าสง $this-> redirect (array( 'view', 'id'=>$model->image_id )); ซงปญหาทเกดขนจะท าการชแจงใน ภาคผนวก ก.
การแสดงผลรปภาพ
ท ได เรคทอร www/YiiTraining/protected/views/image/_view.php แ กไ ข สวนของ Attribute ทชอ picture เพอใหสามารถแสดงผลรปภาพได ซงมการแกไขค าสง ดงรปท 10-6
รปท 10-6 แสดงการใชค าสง แสดงผลรปภาพ
เมอแกไขค าสง เรยบรอยแลว สามารถดรปแบบการแสดงผลได ท http://localhost/ YiiTraining/index.php/image/index ซงมรปแบบการแสดงผล ดงรปท 10-11
43
รปท 10-11 แสดงรปภาพทอพโหลด
11. การใชงาน DateTimePicker ดวย Extension CJuiDateTimePicker
CJuiDateTimePicker เปน Extension เสรมส าหรบ Field ทตองใสขอมลวนท และ เวลา เพอใหมความสะดวกตอผใช โดยการน า Extension CJuiDateTimePicker มาใชงานมวธการดงน
1. Generate Model Datetime
เปนการ Generate Model มาจากตาราง datetime เพอใชในการตดตอกบฐานขอมล โดยการ Generate Model Datetime มวธการ ดงรปท 4-29
1. ท http://localhost/YiiTraining/index.php/gii เลอก Model Generator ใสชอตารางท Table Name และตงชอ Model Class
2. คลกท Preview หลงจากนนจะแสดง File ซงสามารถแสดงรปแบบ Source Code ได
3. คลกท Generate เพอสราง File
44
รปท 11-1 แสดงการ Generate Model Datetime
4. เมอ Generate แลวสามารถดโคดไดทไดเรคทอร www/YiiTraining/protected/ models/Datetime.php
2. Generate Crud Datetimes
หลงจากทไดสราง Model UserDetail เปนทเรยบรอยแลว จะท าการสราง Controller และ View โดยใช Crud Generator เพอสรางรปแบบการเพม ลบ แกไขขอมล โดยการ Generate มวธการ ดงรปท 11-2
1. ท http://localhost/YiiTraining/index.php/gii เลอก Crud Generator ใสชอ Model และ Controller
2. คลกท Preview หลงจากนนจะแสดง File ซงสามารถแสดงรปแบบ Source Code ได
3. คลกท Generate เพอสราง Code File
45
รปท 11-2 แสดงการ Generate Crud Datetimes
4. เมอ Generate แลวจะมโคดถกสรางขนมา 2 สวน คอ Controller และ View โดยไฟลท เปน Controller สามารถดโคดไดท ได เรคทอร www/YiiTraining/protected/ controller/DatetimesController.php และไฟลทเปน View สามารถดโคดไดทไดเรคทอร www/YiiTraining/protected/views/datetimes/
3. เ ม อท า ก า ร Generate เ ร ย บ ร อ ย แ ล ว ให ท า ก า ร ด า ว น โห ลด extension CJuiDateTimePicker ท http://www.yiiframework.com/extension/datetimepicker/ ดงรปท 11-3
รปท 11-3 แสดงหนาดาวนโหลด extension CJuiDateTimePicker
46
4. ท าการแตกไฟลทดาวนโหลดเกบไวท ได เรคทอร www/YiiTraining/protected/ extensions
5. เรยกใช extension CJuiDateTimePicker ซงมวธการดงน
1. ทไดเรคทอร www/YiiTraining/protected/views/datetimes/_form.php แกไข ดงน
1.1 แกไข Text field ของ datetime1 ใหแสดงรปแบบส าหรบปอนค าสงแบบวนทและเวลา โดยใชค าสง ดงรปท 11-4
รปท 11-4 แสดงการแกไข textField datetime1
การแกไข Text field ของ datetime1 ใหแสดงรปแบบส าหรบปอนค าสงแบบวนทและเวลา มรปแบบการแสดงผลดงรปท 11-5
รปท 11-5 แสดงรปแบบการแสดงผลแบบวนทและเวลา
47
1.2 แกไข Text field ของ datetime2 ใหแสดงรปแบบส าหรบปอนค าสงแบบวนท โดยใชค าสง ดงรปท 11-6
รปท 11-6 แสดงการแกไข textField datetime2
การแกไข Text field ของ datetime2 ใหแสดงรปแบบส าหรบปอนค าสงแบบวนท มรปแบบการแสดงผลดงรปท 11-7
รปท 11-7 แสดงรปแบบการแสดงผลแบบวนท
1.3 แกไข Text field ของ datetime3 ใหแสดงรปแบบส าหรบปอนค าสงแบบเวลา โดยใชค าสง ดงรปท 11-8
48
รปท 11-8 แสดงการแกไข textField datetime3
การแกไข Text field ของ datetime3 ใหแสดงรปแบบส าหรบปอนค าสงแบบเวลา มรปแบบการแสดงผลดงรปท 11-9
รปท 11-9 แสดงรปแบบการแสดงผลแบบเวลา
6. เ ม อ แ ก ไ ข เป นท เ ร ย บ ร อ ย แ ล ว ส า ม า ร ถด ร ป แ บบ กา ร แ ส ด ง ผล ได ท http://localhost/YiiTraining/index.php/datetimes/create โดยผใชจะตองท าการ Login กอนจงจะสามารถเขาถงการใชงานได
49
12. การใช extension jquery-gmap เพอแสดงแผนท
extension jquery-gmap เปน extension เสรมเพอน าแผนทมาประยกตใชงาน ซงการน า extension jquery-gmap มาใชงานมวธการดงตอไปน
1. สราง Controller jquery_gmap
การสราง Controller Jquery_gmap มวธการดงรปท 12-1 1. ท http://localhost/YiiTraining/index.php/gii เลอก Controller Generator ใสชอ
ตารางท Controller และ View 2. คลกท Preview หลงจากนนจะแสดง File ซงสามารถแสดงรปแบบ Source
Code ได 3. คลกท Generate เพอสราง File
รปท 12-1 แสดงการ Generate Controller Jquery_gamp
4. เมอ Generate แลวจะมโคดถกสรางขนมา 2 สวน คอ Controller และ View โดยไฟลท เปน Controller สามารถดโคด ไดท ได เรคทอร www/YiiTraining/protected/ controllers/Jquery_gampController.php และไฟลท เปน View สามารถดโคดไดท ไดเรคทอร www/YiiTraining/protected/views/jquery_gmap/index.php
50
2. ดาวนโหลด extension jquery-gmap ไดท http://www.yiiframework.com/extension/ jquery-gmap/ ดงรปท 12-2
รปท 12-2 แสดงหนาเวบไซตส าหรบดาวนโหลด extension jqurey-gamp
3. ท าการ Extract ไฟลทดาวนโหลดมา แลวน าไดเรคทอร jquery-gampทอยภายใน ไดเรคทอร jqurey-gmap_2.1 ซง เปนไดเรคทอรท Extract มา น าไปไวในไดเรคทอร www/YiiTraining/protected/extensions
4. ท www/YiiTraining/protected/views/jquery_gmap แกไขไฟล index.php ใหสามารถแสดงแผนทและก าหนด Marker ได ซงมวธการดงน
1. เรยกใชงาน Extension jquery-gmap โดยใชค าสง ดงรปท 12-3
รปท 12-3 แสดงการเรยกใชงาน Extension jquery-gmap
51
2. สรางแผนทโดยใชค าสง ดงรปท 12-4
รปท 12-4 แสดงการใชค าสงสรางแผนท
3. สราง Marker การสราง Marker เปนการสรางเพอเปนการก าหนดต าแหนง หรอบงบอกสถานทท
ตองการ โดยการสราง Marker มดวยกน 2 วธคอ สรางแบบก าหนดละตจด ลองตจด และสรางแบบก าหนดชอเมอง และประเทศ
3.1 การสราง Marker แบบก าหนดละตจด ลองตจด มวธการ ดงรปท 12-4
รปท 12-5 แสดงการสราง Marker แบบก าหนดละตจด ลองตจด
52
3.2 การสราง Marker แบบก าหนดชอเมอง และประเทศ มวธการ ดงรปท 12-6
รปท 12-6 แสดงการสราง Marker แบบก าหนดชอเมอง และประเทศ
4. ใชค าสงแสดงแผนท ดงรปท 12-7
รปท 12-7 แสดงการใชค าสงแสดงแผนท
5. เมอแกไขไฟล index.php เปนทเรยบรอยแลว สามารถดรปแบบการแสดงผลไดท http://localhost/YiiTraining/index.php/jquery_gmap/index ซงมรปแบบการแสดงผลดงรปท 12-8
53
รปท 12-8 แสดงรปแบบการใชงาน Extension jquery-gamp
13. การตดตง extension Rights เพอใชในการก าหนดสทธการใชงานของผใช
Extension Rights เปน extension เสรม เพอใชในการจดการการเขาถงขอมล และการจ ากดสทธการใชงานของผใช ซงการตดตงการใชงานมวธการดงตอไปน
1. ท www/YiiTraining/protected/ สรางไดเรคทอร modules เพอเพมสวนการท างานทเปน Module ดงรปท 13-1
54
รปท 13-1 แสดงการสรางไดเรคทอร modules
1. ดาวนโหลด Extension Right ท http://www.yiiframework.com/extension/rights/ 2. Extract ไฟล Rights ไปไวท www/YiiTraining/protected/modules 3. ทไดเรคทอร www/YiiTraining/protected/config/main.php แกไข config ดงน
1. ท 'import' => array(), แกไขดงรปท 13-2
รปท 13-2 แสดงการแกไข import ใน config
55
2. ท 'modules' => array(), แกไขดงรปท 13-3
รปท 13-3 แสดงการแกไข modules ใน config
3. ท 'components' => array(), เพมค าสงดงน
3.1 เพมค าสง 'user'=>array( ), ดงรปท 13-4
รปท 13-4 แสดงการเพมค าสง 'user'=>array( ), ใน components
3.2 เพมค าสง 'authManager'=>array( ), ดงรปท 13-5
รปท 13-5 แสดงการเพมค าสง 'authManager'=>array( ), ใน components
4. โดยสรปการแกไข Config มลกษณะดงรปท 13-6
56
รปท 13-6 แสดงรปแบบการแกไข Config ทงหมด
ทมา : Christoffer Niska. (2011,1 November), Yii-Rights documentation Version 1.2.0, หนา 4.
4. แกไข RightsModule ใหตรงกบ Class ของ Model ท ใชงาน โดยท ได เรคทอร www/YiiTraining/protected/modules/Rights/RightsModule.php ภายใน Class RightsModule แกไขดงน
1. แกไข $userClass ใหตรงกบชอ Class ของ Model ทใชในการ Login จากตวอยาง Model ทใชในการ Login คอ Model UserLogin โดยแกไขดงรปท 13-7
รปท 13-7 แสดงการแกไข $userClass
2. แกไข $userIdColumn โดยใหใชชอเดยวกบ Column ท เกบรหสผใช จากตวอยาง Column ทใชคอ id_user ดงรปท 4-1
รปท 13-8 แสดงการแกไข $userIdColumn
57
3. แกไข $userNameColumn โดยใหใชชอเดยวกบ Column ทเกบชอผใช จากตวอยาง Column ทใชคอ username ดงรปท 13-9
รปท 13-9 แสดงการแกไข $userNameColumn
4. เมอแกไข config ตาง ๆ เรยบรอยแลว ให Admin ท าการ Login เขาสระบบ แตเมอAdmin ท าการ Login เขาสระบบแลวจะเกด Error ขนดงรปท 13-10 ซงสาเหตเกดจากตารางตาง ๆ ของ Rights Extension ยงไมไดถกสราง
รปท 13-10 แสดงการเกด Error
5. เข าไปท http://localhost/YiiTraining/index.php/rights เ พอเข า สการตดต ง Rights Extension ซงแสดงดงรปท 13-11 ให Admin คลกท Yes เพอตดตง
58
รปท 13-11 แสดงหนายนยนการตดตง
6. เมอตดตงเรยบรอยจะแสดงผลดงรปท 13-12
รปท 13-12 แสดงหนาการตดตงส าเรจ
5. เมอตดตงเรยบรอยแลว ใหกลบไปปดการตดตงเพอไมใหการใชงาน Rights กลบเขาสหนาตดตงอก โดยไปท www/YiiTraining/protected/config/main.php ภายใต 'modules'=>array( ), แกไขดงรปท 13-13
59
รปท 13-13 แสดงการแกไขการตงคา Rights
7. เมอแกไขการตงคา Rights เปนทเรยบรอยแลวสามารถเรยกใชงาน Rights Extension ไดท http://localhost/YiiTraining/index.php/rights ซงจะแสดงผลดงรปท 13-14
รปท 13-14 แสดงหนา Rights
ส าหรบการคมอการใชงาน Right Extension นน สามารถดาวนโหลดไดท http://yii-rights.googlecode.com/files/yii-rights-doc-1.2.0.pdf
60
14. การใช extension MbMenu เพอก าหนดรปแบบการแสดงเมนแบบ DropdownList
Mbmenu เปน Extension เสรมส าหรบทชวยในการท า Dropdown Menu เพอใหผพฒนาโปรแกรมมความสะดวกรวดเรวในการพฒนาโปรแกรม อกทงยงมรปแบบการแสดงผลทสวยงาม โดยการท า Dropdown Menu มวธการดงน
1. ดาวนโหลด extension mbmenu ท http://www.yiiframework.com/extension/mbmenu ดงรปท 14-1
รปท 14-1 แสดงหนาดาวนโหลด extension mbmenu
2. ท าการแตกไฟลทดาวนโหลดเกบไวท ได เรคทอร www/YiiTraining/protected/ extensions
3. เรยกใช extension mbmenu
1. ไปทไดเรคทอร www/YiiTraining/protected/views/layouts/main.php ปดค าสง widget CMenu หรอ ลบค าสง widget CMenu แลวเพมค าสงดงรปท 14-2
61
รปท 14-2 แสดงค าสง Widget MbMenu
2. แกไข <div id="mainmenu"> เปน <div id="mainMbMenu"> 3. เมอแกไขแลวจะมการเปลยนแปลงรปแบบการแสดงผลดงน Menu ทใชค าสง Widget CMenu แสดงดงรปท 14-3
รปท 14-3 แสดงรปแบบ Menu ทใชค าสง Widget CMenu
62
Menu ทใชค าสง Widget MbMenu แสดงดงรปท 14-4
รปท 14-4 แสดงรปแบบ Menu ทใชค าสง Widget MbMenu
15. การก าหนดการมองเหนเมน
การก าหนดการมองเหนเมนนน เปนการก าหนดสทธการใชงานในเมน โดยการก าหนดสทธนนสามารถก าหนดไดทงเมนแบบ CMenu และ MbMenu ซงการก าหนดการมองเหนนน หากตองการก าหนดเมนเฉพาะส าหรบ Admin ควรท าการตดตง Rights Extension ดวย การก าหนดการมองเหนเมนมวธการดงน
ตวอยาง การก าหนดรปแบบการมองเหนเมนดวย Widget CMenu โดยใชการยกตวอยาง การแสดงผลเมน Contact ซงมวธการดงน
1. ท าการสรางสมาชกใหม 1 สมาชก และใช account ทเปน Admin แกไขใหสมาชกใหมนนเปน Authenticated คอเปนสมาชกธรรมดา
2. ท www/YiiTraining/protected/views/layout/main.php ก าหนดรปแบบการมองเหนเมน Contact โดยใหผใชทเปน Authenticated และAdminสามารถมองเหนได มวธการดงรปท 4-1
รปท 15-1 แสดงการก าหนดรปแบบการมองเหนเมน
63
3. เมอก าหนดรปแบบแลว จะมรปแบบการแสดงผลดงน
- การแสดงผลเมนของผใชทวไปมรปแบบการแสดงผล ดงรปท 15-2
รปท 15-2 แสดงผลเมนของผใชทวไป
- การแสดงผลเมนของผใชทเปน Authenticated และAdminเมอท าการ Loginแลว
จะมรปแบบการแสดงผล ดงรปท 15-3
รปท 15-3 แสดงผลเมนของผใชทเปน Authenticated และAdmin
การก าหนดรปแบบการมองเหน มดวยกน แบบ คอ
1. การก าหนดการมองเหน เฉพาะผใชทวไป ใชค าสงดงรปท 15-4
รปท 15-4 แสดงการใชค าสงก าหนดการมองเหนเฉพาะผใชทวไป
64
2. การก าหนดการมองเหน เฉพาะผใชทเปน Authenticated และAdmin ใชค าสงดงรปท 15-5
รปท 15-5 แสดงการใชค าสงก าหนดการมองเหนเฉพาะผใชทเปน Authenticated และAdmin
3. การก าหนดการมองเหน เฉพาะผใชทเปน Authenticated ใชค าสงดงรปท 15-6
รปท 15-6 แสดงการใชค าสงก าหนดการมองเหนเฉพาะผใชทเปน Authenticated
4. การก าหนดการมองเหน เฉพาะผใชทเปน Admin ในสวนนควรท าการตดตง Rights Extension เพอความสะดวกในการก าหนดการใชงาน โดยใชค าสงดงรปท 15-7
รปท 15-7 แสดงการใชค าสงก าหนดการมองเหนเฉพาะผใชทเปน Admin
65
บรรณานกรม
Christoffer Niska. (2011,1 November), Yii-Rights documentation Version 1.2.0, หนา 4. แหลงรวมการตอบปญหากระท ชมชน Yii Framework ในประเทศไทย (ออนไลน)
สามารถเขาถงไดจาก : http://www.yii.in.th/form/ (วนทสบคนขอมล : 23 พฤศจกายน 2554)
แหลงรวมการตอบปญหากระท เวบไซต Yii Framework (ออนไลน)
สามารถเขาถงไดจาก : http://www.yiiframework.com/ forum/ (วนทสบคนขอมล : 19 มกราคม 2555)
แหลงศกษาการใชงาน Yii Framework (ออนไลน)
สามารถเขาถงไดจาก : http://www.yiiframework.com
(วนทสบคนขอมล : 19 มกราคม 2555)
66
ภาคผนวก
67
ภาคผนวก ก
ปญหา Error
ปญหาท 1 Config
DbConnect_Failed ดงรปท ก-1
รปท ก-1 แสดงการเกด Error DbConnect_Failed
สาเหต เกดจากการเชอมตอฐานขอมล หรอ การรองรบฐานขอมล
การแกปญหา
1. ตรวจสอบใน C:\AppServ\www\YiiTraining\protected\config\main.php ในสวนของ 'db' วา เชอมตอฐานขอมลถกตองหรอไม
2. ตรวจสอบการรองรบฐานขอมล โดยสามารถตรวจสอบไดท http://localhost/yii/requirements/ หาก PDO MySQL extension แสดงเปน Warning ใหแกไขดงน
2.1 ทไดเรคทอร C:\Windows\php.ini ลบ Comment [;] ทบรรทด extension=php_pdo_mysql.dll
2.2 หลงจากนนท าการ Save และ Restart เครองใหม
68
ปญหาท 2 Config
Error 403 code Generator ดงรปท ก-2
รปท ก-2 แสดงการเกด Error 403 code Generator
สาเหต เกดจากไมอนญาตใหใชงาน (ปญหาทเกดจากการท างานบน Server)
การแกปญหา
ทไดเรคทอร C:\AppServ\www\YiiTraining\protected\config\main.php แกไข 'gii'=>array( )ให ipFilters มลกษณะดงน 'ipFilters'=>false,
ปญหาท 3 การแสดงผลแบบ CListView
คลก Link Update แลวเกด Error 400 Your request is invalid. ดงรปท ก-3
รปท ก-3 แสดงการเกด เกด Error 400
69
สาเหต ปญหาเกดจาก Link ท Generate ไมสอดคลองกบ การเรยกใชแบบ CListView เนองจากฟงกชน View ถกแกไขใหมลกษณะการแสดงผลเปน CListView
การแกปญหา
หลงจาการแกปญหา ฟงกชน view ไดถกแกไขใหมการเกบ session ดงนน จงน า session ทถกเกบมาใชงาน โดยการแกไขดงน
1. ประกาศใช session ท บรรทดแรกของ views/document/view.php ดงรปท ก-4
รปท ก-4 แสดงการประกาศใช session
2. แกไข Link ภายใต $this->menu=array( ); ดงรปท ก-5
รปท ก-5 แสดงการแกไข Link
โดยมรายละเอยดการแกไข Link ดงรปท ก-6
รปท ก-6 แสดงรายละเอยด Link
70
ปญหาท 4 การสรางฟอรม ส าหรบอพโหลด
การ Update หนา Document ไมได
สาเหต เกดจากการไมไดแกไขใหฟงกชน Update ของ DocumentController สามารถอพโหลดไฟลได
การแกปญหา
แกไขค าสงในฟงกชน update ใหมลกษณะเดยวกนกบฟงกชน create
ปญหาท 5 การสรางฟอรมส าหรบอพโหลดรป
Cannot modify header information - headers already sent by (output started at C:\AppServ\www\YiiTraining\protected\models\Image.php:1) ดงรปท ก-7
รปท ก-7 แสดงการเกดเกดปญหาการเรยกหนาแสดงผล
71
สาเหต เกดจากการเรยกหนาแสดงผลหลงจากอพโหลดรปภาพ ดงรปท ก-8
รปท ก-8 แสดงบรรทดทเกดปญหา
การแกปญหา
ปญหาทเกดขนยงไมสามารถหาวธการแกไขได ซงปญหานเกดขนภายในฟงกชน create ของ คลาส ImageController เทานน
ปญหาท 6 การใช extension Rights
YiiBase::include(User.php) [<a href='yiibase.include'>yiibase.include</a>]: failed to open stream: No such file or directory ดงรปท ก-9
72
รปท ก-9 แสดงการเกดปญหา YiiBase::include(User.php)
สาเหต เกดจากยงไมไดสราง Model User หรอ Model ทใชในการ Login นน ไมไดชอ User (โดยปกต Extension Rights จะตงคาเรมตน ใหใชคกบ Model User)
การแกปญหา
ทไดเรคทอร www/YiiTraining/protected/modules/rights/RightsModule.php ใชแกไขดงน
1. แกไข $userClass ใหตรงกบชอ Class ของ Model ทใชในการ Login จากตวอยาง Model ทใชในการ Login คอ Model UserLogin โดยแกไขดงรปท ก-10
รปท ก-10 แสดงการแกไข $userClass
2. แกไข $userIdColumn โดยใหใชชอเดยวกบ Column ทเกบรหสผใช จากตวอยาง Column ทใชคอ id_user ดงรปท ก-11
73
รปท ก-11 แสดงการแกไข $userIdColumn
3. แกไข $userNameColumn โดยใหใชชอเดยวกบ Column ทเกบชอผใช จากตวอยาง Column ทใชคอ username ดงรปท ก-12
รปท ก-12 แสดงการแกไข $userNameColumn