วันอาทิตย์ที่ 26 มกราคม พ.ศ. 2557

สอนใช้งาน Model ใน Yii Framework



     บทความนี้จะสอน วิธีใช้งาน Model ของ Yii Framework กันบ้างครับ บทความก่อนหน้าได้สอนใช้งาน Controller กับ View ไปแล้ว ส่วนนี้จะเป็นส่วนที่สำคัญอีกส่วนหนึ่งซึ่งจะเกี่ยวข้องกับข้อมูลที่แสดงในเว็บไซต์ทั้งหมด เพื่อทำงานกับฐานข้อมูล รวมถึงการ Validation ข้อมูลเพื่อให้ข้อมูลมีความปลอดภัยมากยิ่งขึ้น เช่น ต้องกรอกเป็นตัวเลขเท่านั้น หรือ การกรอกอีเมลหรือเบอร์โทรที่ต้องกรอกให้ถูกต้องตาม Patterm ของมันเท่านั้น

     ขั้นตอนสร้าง Model
1.ให้สร้างเทเบิลในฐานข้อมูลให้เรียบร้อยก่อนครับ จากตัวอย่าง ผมสร้างเทเบิลชื่อ category
มีฟิลด์ 2 ฟิลด์ ชื่อ category_id  ชนิดข้อมูลเป็น INT และเป็นไพรมารี่คีย์ และ category_name ชนิดข้อมูลเป็น VARCHAR

2.จากนั้นเราจะใช้  Yii Code Generator สร้าง โดยพิมพ์ URL ต่อท้าย ว่า index.php?r=gii แล้วใส่รหัสผ่านเพื่อเข้าสู่ส่วนจัดการของ Yii Code Generator
จากนั้นให้คลิกที่เมนูชื่อ Model Generator จะปรากฏฟอร์มให้กรอกข้อมูลตามรูปภาพด้านล่าง


     ให้กรอกชื่อเทเบิลของเราในช่อง Table Name เช่น category มันจะสร้างชื่อ Model Class ให้เราอัตโนมัติ เราสามารถเปลี่ยนชื่อ Model Class ได้ครับ ส่วนตรง Build Relations หมายถึงต้องการให้สร้าง Method relations ใน Model Class ของหรือป่าว ให้ติ๊กไว้ในกรณีที่คิดว่า Table นี้สัมพันธ์(Join)กับ Table อื่นหรือไม่ แต่ถ้า Table ที่เราสร้างนี้ถูกสร้างมาโดดๆไม่สัมพันธ์กับ Table ใดๆ ก็ไม่ต้องติ๊กในส่วนนี้ก็ได้ครับ ให้กด Preview และกด Generate อีกครั้ง

วันพุธที่ 22 มกราคม พ.ศ. 2557

สอนการใช้งาน Controller และ View ใน Yii Framework



       ห่างหายจากการเขียนบทความไปนานพอสมควรครับ กลับมาคราวนี้ขอสานต่อโปรเจ็คบทความ Yii Framework ต่อครับ เนื่องจากผมได้เขียนไปบ้างแล้วทั้งหมด 3 บทความ คือ 1.ขั้นตอนการติดตั้ง Yii Framework , 2.Yii Framework กับการเชื่อมต่อกับฐานข้อมูล MySQL และการใช้งาน Gii Generator , 3.Yii Framework กับการทำ Friendly URL
สำหรับเหตุผลที่ผมอยากเขียนบทความเกี่ยวกับเรื่องนี้มากที่สุด เพราะผมอยากเปลี่ยนสไตล์การเขียนโค๊ดให้เป็นแบบ OOP หรือเขียนแบบเชิงวัตถุทั้งหมดครับ และอยากรณรงค์ให้ทุกคนทำแบบนี้ครับ เพราะมันมีประโยชน์ต่อการพัฒนาเว็บไซต์ให้มีความยืดหยุ่นสูง ทำงานรวดเร็ว มีความปลอดภัยสูง และทำงานร่วมกันเป็นทีมได้ง่าย เพราะใช้หลักการทำงานของ Framework ที่เรียกว่า MVC ครับ
       บทความนี้จะสอนให้รู้จัก Controller กันก่อนครับ ซึ่งคือองค์ประกอบหนึ่งของ MVC ซึ่งก็คือ C นั้นเองซึ่งคือชื่อย่อของ Controller นั้นเองครับ Controller ทำหน้าที่เป็นตัวเชื่อมระหว่าง Model (M) กับ View (V) ครับ โดยมันจะทำหน้าประสานงานระหว่าง View กับ Model เพื่อให้สามารถส่งข้อมูลหากันหรือทำงานร่วมกันได้
       Controller จะรับค่าที่ส่งจาก View แล้วส่งไปให้ Model เพื่อจัดการกับข้อมูลต่ออีกที เราจะเห็นการทำงานแบบนี้ตอนสร้างฟอร์มเพื่อ เพิ่ม/แก้ไข/ลบข้อมูล นั้นเองครับ  ในทางกลับกัน มันยังสามารถรับค่าจาก Model ซึ่งเป็นดึงค่าจากฐานข้อมูลแล้วส่งให้กับ View เพื่อแสดงผลข้อมูลได้อีกด้วย ซึ่งก็คือการคิวรี่ข้อมูลจากฐานข้อมูลมาแสดงนั้นเองครับ และนอกจากนี้มันยังสามารถทำงานโดยที่ไม่ต้องทำงานร่วมกับModelก็ได้ ในกรณีที่ไม่ต้องมีการเชื่อมต่อกับ Database ก็ไม่ต้องทำงานร่วมกับ Model แค่รับค่ามาจาก View เพื่อประมวลผลแล้วส่งกลับไปแสดงที่ View เหมือนเดิม รวมถึงมันสามารถทำงานเดี่ยวๆ โดยที่ไม่ต้องทำงานร่วมกับ View และ Model ก็ได้ โดยที่ไม่ต้องเรียกใช้อ๊อบเจ็คจาก Model หรือ ไม่ใช้เมธอด render  เพื่อแสดงผลใน View

ต่อไปเราจะสร้างไฟล์ Controller กันครับ โดยผมจะตั้งชื่อ Controller ตัวนี้ของผมชื่อว่า Category ครับ
ให้เข้าไปที่ Yii code generator กันเลยครับ โดยพิมพ์ URL ต่อท้าย index.php ดังนี้ index.php?r=gii (ศึกษา gii เพิ่มได้จาก Yii Framework กับการเชื่อมต่อกับฐานข้อมูล MySQL และการใช้งาน Gii Generator)

เมื่อพิมพ์รหัสผ่านเข้าไปแล้ว ให้คลิกที่เมนู Controller Generator ดังรูป

เราจะสร้าง controller ชื่อว่า category ให้เราพิมพ์ดังนี้