คู่มือการใช้งาน Yii Frameworkbls.buu.ac.th/~f55361/06Jul18/YiiThaiManual.pdf · Yii Framework เป็น Framework...

Post on 06-Jul-2020

8 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

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

top related