เราจะเรียกใช้ Object จาก Class CDateFormatter มาดูตัวอย่างในการแสดงผลดังนี้ ไปดู Code กันเลยนะครับ ในส่วนของ View ที่ต้องการแสดงผล เราจะส่งวันเวลาเข้าไป โดยหากต้องการการแสดงผลเพิ่มเติมสามารถดูเพิ่มเติมได้ที่ http://www.yiiframework.com/doc/api/1.1/CDateFormatter
สำหรับ Field เก็บข้อมูลแบบ DATE นั้นจะอยู่ในรูปของ ปีค.ศ.-เดือน-วัน เช่น 2014-01-20 เป็นต้น ดังนั้นใน Yii Booster Extension จะมีส่วนเสริมของ Bootstrap นั่นคือ bootstrap.datepicker.js ซึ่งสามารถ เรียกใช้งานผ่าน Widget ของ Yii Booster Extension ได้ โดยกำหนดในฟอร์มสำหรับรับข้อมูลวันที่ พร้อมจัดรูปแบบให...
การนำข้อมูลจากตารางอื่นมาแสดงนั้นเกิดขึ้นจากที่เราสร้างความสัมพันธ์แบบ BelongsTo ไว้ ตัวอย่างเช่น ในการแสดงผลรายการสินค้า จะมีการดึงประเภทสินค้ามาแสดงด้วยจะต้องมีการตั้งค่าดังต่อไปนี้ ในส่วนของ Products Mod...
มีบางครั้งที่เราต้องการให้การแสดงผลฟอร์มอยู่ในแนวเดียวกันกับ Object ของฟอร์มแบบแนวนอน ซึ่งเราสามารถกำหนดรูปแบบการแสดงผลของฟอร์มสำหรับ Yii Booster Extension โดยกำหนดที่ไฟล์ _form.php โดยเพิ่มตัวแปร ดังนี้ 'type'=>'horizontal' จากนั้นเรียกการแสดงผลได้ลักษณะดังนี้
ปัญหาของวันที่นั้นค่อนข้างสำคัญ ในประเทศไทย ส่วนใหญ่ใช้รูปแบบ พุทธศักราช เช่น 30/04/2559 แต่เมื่อบันทึกในฐานข้อมูลจะกลายเป็นคนละเรื่อง หากบันทึกลักษณะนี้ก็จะไม่สามารถนำมาคำนวณได้ต้องเขียนโปรแกรมวุ่นวายกันใหญ่ จะหาทางแก้อย่างไรให้พิมพ์ 30/04/2559 แล้วไปบันทึกในฐานข้อมูลเป็น 2016-04-30 ให้อัตโนมัติ หร...
การตรวจสอบหมายเลขประจำตัวประชาชนนั้นเราจะทำ 2 อย่างด้วยกันคือ รูปแบบของหมายเลขประจำตัวประชาชนคือ 1-1111-11111-11-1 ความถูกต้องของหมายเลขประจำตัวประชาชน การสร้าง MaskedInput MaskedInput เป็น Package ที่มีอยู่ใน Yii Framework 2 อยู่แล้ว ซึ่ง MaskedInput เป็นรูปแบบของการกำหนด...
ใน Yii Framework 1 นั้น Label ที่เป็นแบบ Required จะมีดอกจันมาพร้อม แต่เมื่อเป็น Yii Framework 2 ซึ่งเป็น Bootstrap แล้วไม่มี ดังนั้นเรามาเพิ่มดอกจัน (*) กันเถอะ เพื่อให้ User เห็นว่าต้องกรอกข้อมูลนี้ เครื่องหมายดอกจัน ไม่ใช่ ดอกจันทร์ เป็นคำเขียนผิดกันบ่อยๆ https://th.wikipedia.or...
CKEditor เป็น Editor ที่มีความสวยงามที่รองรับหลากหลาย Feature และสามารถกำหนดการแสดงผลได้หลากหลายรูปแบบ ในบทเรียนรู้นี้เรามาเรียนรู้การติดตั้ง การตั้งค่า และการใช้งานกัน เรียก Editor ที่เป็นออนไลน์บน Web ลักษณะนี้อีกแบบคือ WYSIWYG (What You See Is What You Get) เว็บไซต์อย่างเป็นทางการของ CK...
ในบทเรียนรู้นี้มาเรียนรู้การสร้างระบบการส่ง Email แบบใช้ SMTP ของ Google โดยจะต้องมี Account ของ Gmail หรือ สมัครใช้งาน Google Bussiness SMTP คืออะไร อ่านเพิ่มเติมได้ที่ https://en.wikipedia.org/wiki/Simple_Mail_Transfer_Protocol ใช้ SwifMailer ในการส่งสำหรับ Yii Framework 2 มี...
บ่อยครั้งที่เราจะสังเกตเห็นว่าเวลาที่มีการกรอกข้อมูลในฟอร์ม เช่น แบบฟอร์มสมัครสมาชิกจะมีช่องให้กรอกตัวอักษรที่อ่านไม่ค่อยออกหรืออ่านค่อนข้างยาก ตัวอักษรเหล่านั้นเรียกว่า Captcha ซึ่งสร้างขึ้นเพื่อป้องกันการกรอกข้อมูลอัตโนมัติของ Bot หรือ Script ที่จะมีการ Boom เข้ามาในเว็บหรือใน A...
การเรียก URL โดยปกติจะเรียก index.php เป็นไฟล์แรกที่ Run เราสามารถซ่อนไฟล์ index.php ได้ โดยใช้คุณสมบัติของ urlManager() โดยจะทำให้สามารถเรียก http://yourweb.com/controller/action เป็นต้น โดยมีการตั้งค่าดังนี้ เพิ่ม 'showScriptName'=>false และ 'caseSensitive'=>...
สำหรับการเปลี่ยน URL ที่เรียกหน้าหลักของเว็บไซต์นั้นจะช่วยให้สามารถจดจำหน้าหลักได้ง่ายยิ่งขึ้น เช่น ก่อนเปลี่ยนจะเรียกเป็น index.php/site/index ให้เปลี่ยนเป็น index.php/home โดยเปิดไฟล์ protected/config/main.php จากนั้นตั้งค่าดังนี้ เพิ่ม ‘home’=>’site/index&...
การนำข้อมูลจากตารางอื่นมาแสดงเป็น Drop Down List นั้นจะค่อนข้างใช้บ่อย เช่น การเพิ่มสินค้าที่ดึงประเภทสินค้ามาเป็นรายการให้เลือก เป็นต้น โดยจะแก้ไขที่ไฟล์ _form.php จากนั้นแสดงผลข้อมูลจะเห็นเป็น Drop Down List ดังนี้
ในการเพิ่มข้อมูล Field ที่เก็บข้อมูลแบบ Text ควรที่จะมี Editor สำหรับเป็นตัวช่วยเขียนเนื้อหา ตัวอย่างเช่นการเขียนบันทึก (Weblog) หากเรามีการกำหนดรูปแบบตัวหนา ตัวเอง ตัวขีดเส้นใต้ หรืออื่นๆ แล้วบันทึกลงในฐานข้อมูล เมื่อมีการดึงข้อมูลมาแสดงผล รูปแบบต่างๆ ที่ได้มีการกำหนดไว้ก็จะแสดงผ...
เราสามารถตรวจสอบเว็บไซต์ว่าเป็นไปตามมาตรฐาน HTML หรือไม่ โดยเข้าเว็บไซต์ https://validator.w3.org จากนั้นกรอก URL ของเว็บไซต์ที่ต้องการตรวจสอบ หากเว็บไซต์มีข้อผิดพลาดระบบจะแจ้งให้ทราบ พร้อมอธิบายและให้แนวทางในการแก้ไข สามารถคลิกขวา View Source เพื่อตรวจสอบ
AJAX Validation เป็นการตรวจสอบข้อมูลโดยการใช้เทคนิค AJAX ตามเหตุการณ์ต่างๆ เช่น เมื่อค่าเปลี่ยน (onChange) หรือเมื่อส่งข้อมูล (onSubmit) ให้ทำการตรวจสอบตาม Rules ที่ได้กำหนดไว้ ดูเรื่อง Validating Input เพิ่มเติมได้ที่ http://www.yiiframework.com/doc-2.0/guide-input-validation.html ...
ระบบ Grid ใน Bootstrap 3 การทำงานของระบบ Grid ใน Bootstrap 3 นั้นแสดงได้จากตารางต่อไปนี้ ขนาดเล็กพิเศษ (โทรศัพท์: xs) (<768px) ขนาดเล็ก (แทปเบล็ต: sm) (≥768px) ขนาดกลาง (เดสทอป: md) (≥992px) ขนาดใหญ่ (เดสทอป :lg) (≥1200px)...
หลักการทำงาน Internationalization (I18N) เป็นการออกแบบอย่างหนึ่งในกระบวนการของซอร์ฟแวร์นั่นคือการประยุกต์การใช้งานภาษาต่างในแต่ละภูมิภาค โดยไม่มีการเปลี่ยนแปลงด้านวิศวกรรม ใน Web Application หลักการนี้มีความสำคัญเพราะผู้ใช้งานมาจากทั่วทุกมุมโลก ซึ่ง Yii ได้รองรับการทำงานนี้ เช่น การแปลง ข้อคว...
จาก URL ที่มีการเปิดหรือ request คือ index.php?r=blog/post/index ใน Yii Framework 2 จะมีการจัดการกับ URL ผ่าน request component ดังนี้ blog คือ ชื่อของ Module ซึ่งจะบรรจุอยู่ใน frontend/modules/blog/ post คือ ชื่อของ Controller ซึ่งอยู่ใน module blog จะอยู่ที่ frontend/modules/blog/PostCon...
เพื่อให้เกิดความเข้าใจในการทำงานของ Yii Framework 2 ก่อนที่จะไปเขียน Web Application มาศึกษาดูว่ากระบวนการทำงานของ Yii Framework 2 เป็นอย่างไรตั้งแต่ผู้ใช้งาน (User) เรียกหน้า Web Application และ Web Application ตอบสนองไปยังผู้ใช้งาน เมื่อผู้ใช้เรียก URL หรือ Route ไปที่ web/index.php?r=si...
Flash Message คืออะไร Flash Message คือ ข้อความที่แสดงขึ้นมาแล้วหายไปเมื่อ refresh หน้า Web Application เหมือนกับ Flash ในกล้องถ่ายรูป เช่น เมื่อ Login เข้าสู่ระบบเสร็จแล้วให้แสดงข้อความ ยินดีต้อนรับ จากนั้นเมื่อ refresh หรือเปิดหน้า Web Application หน้าต่อไป Flash Message ก็จะหายไป ใน Yii Fra...
MVC คืออะไร? โมเดล วิว และคอนโทลเลอร์ เป็นการออกแบบสถาปัตยกรรมซอร์ฟแวร์อย่างหนึ่ง โดยการแบ่งออกเป็น 3 ส่วน คือ ส่วนของข้อมูล (Model) ส่วนของการประมวลผล (Controller) และส่วนการแสดงผล (View) ในมุมของ Web Application นั้นการออกแบบสถาปัตยกรรม MVC นั้นได้รับความนิยมมากเช่นกัน และใน Yii Framework 2 ก็ไ...
สำหรับการ Upload ไฟล์นั้นแน่นอนว่าเกือบทุก Web Application จะต้องมีการ Upload ไฟล์ ขึ้นไปที่ Server ทั้ง Upload แบบไฟล์เดียวหรือ Upload ทีละหลายๆ ไฟล์พร้อมกัน ในบทเรียนรู้นีเรามาทำความเข้าใจการ Upload ไฟล์ ทั้งทีอยู่ใน actionCreate actionUpdate และ actionView พร้อมทั้งระบบการลบรูปภาพออกจากระบบด้ว...
ในขั้นตอนนี้เป็นการนำ Project ในเครื่อง ซึ่งเรามี SourceCode อยู่แล้ว นำไปไว้ที่ GitHub สร้าง Project ใน GitHub เข้าเว็บไซต์ www.github.com จากนั้น login ทำการใส่ชื่อรายละเอียดแล้วกดปุ่ม Create repository เป็นอันเสร็จสิ้นการสร้าง Project หรือ Repository ใน GitHub.com ขั้...
coming soon GridView คือ การนำข้อมูลมาแสดงผลแบบตารางที่เราเข้าใจนั่นเอง โดยการเตรียมข้อมูลให้อยู่ในรูปของ DataProvider ซึ่งมี 2 แบบด้วยกันนั่นคือ ActiveDataProvider() ซึ่งได้มาจาก ActiveRecord, ArrayDataProvider() ได้มาจากข้อมูลในรูปของ Array และ SQLDataProvider ได้มาจากการใช้คำสั่ง SQL โดยตรง...
ในการพัฒนา Web Application นั้น คงหนีไม่พ้นการนำ CSS และ JavaScript หรือเรียกว่าเป็น Client Script หรือสคริปที่ทำงานฝั่งไคลเอนต์ มาใช้งาน ซึ่งแน่นอน Yii Framework 2 มี Bootstrap(CSS, JS) และ jQuery (JavaScript) มาพร้อม สำหรับการใช้งานนั้นในบทเรียนรู้นี้ เรามาเรียนรู้การนำ CSS และ JavaScrip...
ชนิดข้อมูลแบบ ENUM เป็นการเก็บข้อมูลลักษณะที่กำหนดค่าของข้อมูลไว้ล่วงหน้า อย่างเช่น รายชื่อจังหวัด ชนิดของผู้ใช้งาน เป็นต้น โดยมีการกำหนดลักษณะดังนี้ สร้างไฟล์ protected/components/ZHtml.php class ZHtml extends CHtml { public static function enumItem($mod...
โดยส่วนใหญ่แล้ว Theme ที่มีการพัฒนาขึ้นมานั้นในส่วนของ Breadcumb นั้นจะมีการแสดงผลในแบบ Tag ul และ li โดยปกติแล้วถ้าไม่มีการกำหนดจะแสดงเป็น Tag div ซึ่งจะไม่สามารถใช้กับ Theme ได้ดังนั้นเราสามารถเปลี่ยนมาใช้ Tag ul และ li ได้ดังนี้ <?php if(isset($this->breadcrumbs)):...
Breadcumb หรือเรียกอีกอย่างหนึ่งว่าป้ายนำทาง โดยการใช้งาน Breadcumb นั้นค่าเริ่มต้นของหน้าหลักของ Application เรานั้นก็คือคำว่า Home ซึ่งเราจะสามารถเปลี่ยนเป็นภาษาไทยได้ โดยแทนที่คำว่า Home เป็นคำว่าหน้าหลัก โดยเปิดไฟล์ที่เป็น Layout ของ Application เรา ในที่นี้จะใช้ Layout พื้นฐา...
การ Register Script ลักษณะนี้เรียกว่าเป็นการ Register แบบ Inline โดยหลังจากประมวลผลแล้วจะมีการเขียน Script ลงบนหน้า Application โดยตรงโดยที่ไม่ได้ Link มาเหมือนแบบอื่นๆ โดยมีตัวอย่างดังต่อไปนี้ <?php Yii::app()->clientScript->registerScript('JS'," $('#lo...
เราสามารถ Register ไฟล์ JavaScript และ CSS ในหน้า Layout และหน้าเว็บของเราได้โดยใช้ Script ดังนี้ การ Register Core Script เป็นการโหลด Script พื้นฐานโดยตัว Script จะถูกบรรจุอยู่ที่ yii/framework/web/js/source หากต้องการดูว่าสามารถ Register Scrip...
สำหรับการสร้างระบบ User นั้นโดยทั่วไปแล้ว User จะถูกเก็บไว้ในตารางในที่นี้คือตาราง users โดยจะมี Model Users เป็นส่วนทำงานกับตาราง users นั่นเอง การสร้างระบบ Login โดยตรวจสอบข้อมูลจากฟอร์มว่าตรงกันกับฐานข้อมูลนั้นเราจะทำการปรับแก้ไข Class UserIdentity ที่อยู่ใน...
Criteria ถือว่าเป็นพระเอกของการ Select ข้อมูลเลยก็ว่าได้ครับ เราสามารถสร้าง Criteria ได้หลายแบบ มาดูตัวอย่างบางส่วนที่จะช่วยให้เราสามารถเข้าใจเรื่องของ Criteria มากยิ่งขึ้นครับ โดยปกติ เราจะสร้าง Criteria ดังนี้ เป็นการสร้างเงื่อนไข WHERE price > 20 นั่นเอง $crite...
ใน Slim 3 มีฟังก์ชันที่ใช้รองรับคำร้องขอหลักๆ อยู่ 7 ตัวด้วยกัน แบบ Get ใช้รองรับคำร้องขอที่มีรูปแบบ get เช่น การเรียกหน้าธรรมดา ตัวอย่างการใช้งาน $app = new \Slim\App(); $app->get('/books/{id}', function ($request, $response, $args) { // แสดงข้อมู...
ในตอนนี้เราจะสร้างที่อยู่ใหม่ให้ส่วนของ route ครับ โดยสร้างโฟลเดอร์ใหม่ดังนี้ครับ กลับไปที่ไฟล์ index.php ดึงไฟล์ route.php เข้าไปใช้ <?php use \Psr\Http\Message\ServerRequestInterface as Request; // ไลบราลี้สำหรับจัดการคำร้องขอ use \Psr\Http\Message\ResponseInterface as...
Bootstrap คืออะไร? Bootstrap คือ Frontend Framework ที่รวม HTML, CSS และ JS เข้าด้วยกันสำหรับพัฒนา Web ที่รองรับทุก Smart Device หรือ เรียกว่า Responsive Web หรือ Mobile First Bootstrap ถูกพัฒนาขึ้นโดยทีมงานจาก Twitter หรือ Twitter.com ซึ่งจะเห็นว่าหน้าตาคล้ายกันมาก ซึ่งปัจจุบันทีมพัฒนาห...
สารบัญ Bootstrap 3.x Bootstrap คืออะไร? เรียนรู้ระบบ Grid ใน Bootstrap 3 การแสดงผลตัวอักษร (Typography) การนำ Bootstrap ไปใช้ใน Webpage การแสดงผลโค๊ดโปรแกรม (Code) การสร้างตาราง (Table) แบบต่างๆ ปุ่มแบบต่างๆ (Button)
AdminLTE คืออะไร? AdminLTE คือ Theme ที่ถูกพัฒนาโดย Almsaeed Studio และได้มีการแจกให้สามารถนำไปใช้ได้ฟรี โดยสามารถดูตัวอย่างของ Theme ได้ที่ https://almsaeedstudio.com/preview Yii2 AdminLTE คืออะไร? Yii2 AdminLTE คือ การนำ Theme AdminLTE มาทำให้อยู่ในรูปแบบของ Packa...
ในเรื่องของ Tag นั้นก็ค่อนข้างทำยากหน่อยครับ เพราะต้องตรวจสอบหลายส่วน เช่นเมื่อโพส Tag เข้ามาถ้ายังไม่มีให้เพิ่มในตาราง แต่ถ้ามีแล้วให้บวกจำนวนเพิ่มขึ้น และถ้ามีการลบโพสอออกก็ให้ลบ Tag ออกด้วยดังนั้นการเขียนโปรแกรมจึงค่อนข้างซับซ้อนหน่อย แต่ว่าก็สามารถเรียนรู้และทำได้จากตัวอย่างนี้ครับ &nbs...
การทำ URL ให้เหมาะกับ Search Engine หรือที่เรียกกันคุ้นหูคุ้นตาว่า Search Engine Optimization หรือ SEO ส่วนหนึ่งก็คือเรื่องของ URL โดยจะมีลักษณะดังต่อไปนี้ http://www.programmerthailand.com/vdos/1-yii-framework-คืออะไร จะเห็นว่า 1-yii-framework-คืออะไร จะมีความหมายดังต่อไปนี้ 1 คือ ต...
สำหรับ Yii Framework 2 นั้นแน่นอนเราสามารถกำหนด Title ให้แต่ละหน้าได้ แต่นอกเหนือจากนั้นเราจะกำหนดได้อย่างไรเช่น keywords, description หรือแม้แต่ tag ด้าน social media เช่น og:image, og:desctiption, twitter:image เป็นต้น ใน Tutorial นี้เรามาทำให้ Web Application เรารองรับ Search Engine และ Social Me...
สำหรับโปรแกรม Composer นั้นเป็นโปรแกรมที่ใช้ในการบริหารจัดการ Package ของ PHP และ อาจมี Package ของ JavaScript ที่สามารถติดตั้งผ่าน Composer ได้ด้วยเช่นกัน การติดตั้ง Composer นั้นต้องการ php.exe ดังนี้เราจะต้องทำการติดตั้ง PHP ให้เรียบร้อยเสียก่อน ดาวน์โหลดโปรแกรม Composer เข้าเว็บไซต์...
การ Update Composer นั้นมี 3 ส่วนด้วยกัน โดย เปิด Command Prompt / Terminal และทำการ update ดังนี้ การ Update โปรแกรม Composer เป็นการ Update โปรแกรม Composer ให้เป็น version ปัจจุบัน ซึ่งจะใช้คำสั่งในการ Update โปรแกรมดังนี้ composer self-update การ Update Package ที่ติดตั้ง...
เริ่มจากสร้างโฟลเดอร์เพื่อนำตัวโปรเจคมาวางก่อน เปิดคอมมานไลน์ขึ้นมา เลือกไปที่อยู่ของโปรเจค แล้วใช้คำสั่ง ตามภาพเลยครับ เสร็จแล้วครับ เข้าไปสร้างไฟล์ index.php ก่อนครับ ด้านในใส่โค้ดตามนี้ <?php use \Psr\Http\Message\ServerRequestInterface as Requ...
Database Active Record มาเรียนรู้กันนะครับว่าการ Create Read Update และ Delete ใน Model นั้นสามารถเขียน Code แบบไหนได้บ้างครับไปดูกันเลยครับ Create $post = new Post; $post->title = "หัวข้อ"; $post->content = "เนื้อหา"; $post->save(); Read ตัวอย่างที่ 1...
ในการส่ง Email ให้ถึงผู้รับแบบชัวร์ๆ นั้นเราควรส่งด้วย SMTP Server โดยใช้ Extension ที่มีชื่อว่า smtp-mail ซึ่งสามารถดาวโหลดได้ที่นี่ http://www.yiiframework.com/extension/smtp-mail/ การติดตั้ง ดาวโหลด smpt-mail มาไว้ใน protected/extensions/smtpmail/ จากนั้นเปิดไฟล์ pr...
หลังจาก Login เข้าระบบเป็น admin เรียบร้อยแล้ว แล้วเข้าเมนู Rights จากนั้น กด Permissions แล้วคลิ๊ก Link Generate items for controller actions เพื่อสร้าง Item ก่อนการกำหนดสิทธิ์ จากนั้นเลื่อนลงมาล่างสุดกด Select All แล้วกดปุ่ม Generate ก็จะปรากฏรายการ Permissions ต่างๆ จากนั้นทด...
ทำไมต้อง PDF? แน่นอนครับ คงเป็นเรื่องที่ยุ่งยากแน่ๆ เมื่อเราจะสร้างไฟล์ pdf โดยใช้เทคโนโลยีด้าน Web Application นั่นก็หมายความว่าเราจะเอาคำสั่ง HTML ไปสร้างเป็น HTML นั่นเอง สมัยก่อนการสร้างไฟล์ pdf นั้นค่อนข้างยากลำบากมาก tag ต่างๆ ใช้ไม่ค่อยได้ การจัดรูปแบบให้ตรงตามความต้องการนั้นแสนลำบาก ใน...
Paypal คืออะไร เข้าใจง่ายๆ Paypal คือธนาคารออนไลน์นั่นเองครับ ซึ่ง Paypal ได้สร้าง API ไว้ให้เราได้เขียนโปรแกรมในการเชื่อมต่อ รับชำระเงิน ตัดบัตรเครดิต (ในไทยยังใช้ไม่ได้) และสามารถถอนเงินเข้าบัญชีธนาคารในบ้านเราได้อย่างง่ายดาย เอาล่ะครับ อาจจะค้นหาเพิ่มเรื่อง Paypal กันต่อได้ แต่ในส่วนนี้ไม...