แอปและอุปกรณ์บางอย่างใช้เทคโนโลยีการลงชื่อเข้าใช้ที่มีความปลอดภัยน้อย ซึ่งทำให้บัญชีของคุณมีช่องโหว่ คุณปิดการเข้าถึงของแอปเหล่านี้ได้ (ซึ่งเราแนะนำ) หรือเปิดการเข้าถึงหากต้องการใช้งานแม้จะมีความเสี่ยงก็ตาม Google จะปิดการตั้งค่านี้โดยอัตโนมัติหากไม่มีการใช้งาน โดยเข้า URL : https://myaccount.goo...
หลายๆ ครั้งที่ข้อมูลที่มีความสำคัญ เช่น ชื่อ นามสกุล หมายเลขบัตรประชาชน หรือแม้แต่หมายเลขบัตรเครดิต หากทำให้เกิดความปลอดภัยมากขึ้นเราควรเข้ารหัสข้อมูลเหล่านี้ในฐานข้อมูลด้วยเช่นกัน ซึ่งปกติแล้ว หลายๆ Database ก็มีความสามารถเช่นกัน เช่น MySQL, MariaDB ที่มี AES_encrypt/AES_decrypt เป็นต้น อีกส่วนห...
ในบทเรียนรู้นี้เรามาติดตั้งและใช้งาน reCaptcha ใน Yii Framework 2 กันนะครับ reCaptcha เป็นบริการหนึ่งของ Google ครับ ซึ่งให้บริการในการ Validate ตัวอักขระรูปภาพ เพื่อป้องกันการ Submit จาก Bot หรือ Script ต่างๆ โดยทำให้แน่ใจว่าถูก Submit ด้วยมนุษย์นั่นเอง ก่อนอื่นเข้าไปสร้าง Key กันก่อนโดยเข้า...
หลายๆ ครั้งที่เราเขียน Web Application ด้วย Yii Framework 2 นั้น เราต้องการเปลี่ยน Theme ในแต่ละ Module นั้นก็สามารถทำได้ เช่น เรามี Theme หลักของเว็บอยู่แล้ว แต่ต้องการเปลี่ยน Theme ใน Module user เพื่อให้ user ที่ login เข้ามาเห็นหน้าจอที่แตกต่างจาก Theme หลัก เป็นต้น วิธีการตั้งค่า ให้เปิดไฟล์...
ในบทเรียนรู้นี้เรามาเขียนโปรแกรมเพื่ออ่าน File และ Folder ใน Bucket ของ Amazon S3 กัน โดยเราจะใช้ Package ที่มีชื่อว่า "aws/aws-sdk-php": "^3.63" โดยเปิดไฟล์ composer.json จากนั้นเพิ่ม package ในส่วน require แล้วสั่ง cmd/terminal composer update จากนั้นเข้าไป Generate...
ในบทเรียนรู้นี้ เราสามารถสั่ง cronjob ให้ run yii console (controller/action) ได้ เช่นให้ส่งอีเมล์จาก Queue Message เพื่อส่งให้ user ครั้งละ 10 อีเมล์ เป็นต้น โดยในที่นี้จะใช้ cPanel ในการตั้งค่า และเรียกคำสั่งในการ run console โดยมีขั้นตอนดังนี้ ขั้นแรก Login เข้าระบบ จากนั้นเข้าเมนู ADVANCED จะ...
ในบทเรียนรู้นี้เรามาติด Lazy Loading ให้กับ Yii Framework 2 เพื่อให้การ Load Image, Iframe หรือ Video มีความลื่นไหลมากยิ่งขึ้น ดังที่ Google แนะนำตอนตรวจสอบ Page Speed โดยสามารถดูรายละเอียดเพิ่มเติมได้ที่นี่ https://web.dev/native-lazy-loading ขั้นแรกทำการ RegisterJS ก่อน โดยใช้คำสั่...
เอาล่ะครับก็มีคำถามมานะครับว่าเราจะเอาระบบที่เขียน(เสร็จแล้ว) ไปติดตั้งที่ Server ต้องทำอย่างไร ในที่นี้ผมจะแนะนำการติดตั้งที่ Server ที่ใช้ Apache ก่อนนะครับ (ซึ่งส่วนใหญ่น่าจะใช้ Shared Host) และขอใช้ yii2-app-advanced เป็นตัวอย่างนะครับ Initialize Project เป็น Production ในขั้นตอนนี้ใ...
หลังจากที่ Package yii\bootsrap4 ออกมานั้นหลายคนที่ใช้ GridView และ ListView แบบเดิมอยู่จะทำให้ Pagination นั้นเพี้ยนๆ ไป ดังนั้นขั้นตอนนี้จะมาแก้ปัญหาเรื่อง Pagination ที่ใช้งาน Package yii\bootstrap4 ให้แสดงผลได้ถูกต้อง ไปดูตัวอย่างการตั้งค่า <?php use yii\bootstrap4\LinkPager; ?> &...
บางครั้งการส่งข้อมูลแบบ AJAX จากฟอร์มส่งไปประมวลผลใน Controller แบบ POST (อาจจะไม่ปลอดภัยเท่าไร) เกิดปัญหา Forbidden ทำให้ไม่สามารถส่งข้อมูลได้ เนื่องจากติดเรื่อง CSRF ป้องกันอยู่ แต่ก็สามารถทำการยกเลิก CSRF ได้ โดยกำหนดใน Action ของ Controller หรือ กำหนดใน method beforeAction() ได้เช่นกัน ตัวอ...
เราสามารถสร้างการแจ้งเตือนจากเว็บไซต์เราเข้า LINE ของลูกค้าได้ผ่าน LINE Notify แบบ 1-1-Chat หลักการทำงาน ขั้นแรก ลูกค้าร้องข้อเชื่อมต่อกับ Service ของเราผ่านเว็บไซต์เราเพื่อทำ Authorize โดยเข้าระบบแล้วอนุญาตการเชื่อมต่อกับ Service เรา ขั้นที่สอง หลังจากลูกค้าอนุญาตแล้วระ...
ในบทเรียนรู้นี้เรามาสร้าง JWT สำหรับให้บริการข้อมูลกับ Client ในแบบต่างๆ เช่น Web Application, Mobile Application หรือการเชื่อมต่อไปยัง Application อื่นๆ ได้เช่นกัน เริ่มจากติดตั้ง Package PHP JWT ซึ่งมีมากมาย ในที่นี้จะใช้ Package ที่สร้างจาก Firebase โดยเปิดไฟล์ composer.json จากนั้นเพิ่ม...
บทเรียนรู้นี้เราสามารถสร้าง QR Code แบบรูปภาพได้ โดยใช้ package ในการ Generate QR Code โดยติดตั้ง package php-qrcode ดังนี้ "chillerlan/php-qrcode": "^3.1" ทดลองเขียนโปรแกรมในการ Generate QR Code ตัวอย่างนี้จะเขียนใน SiteController.php โดยสร้าง action Qr ดังนี้ use chillerlan\QRCode\QRC...
ในบทเรียนรู้นี้ เรามาทำการติดตั้ง package CKEditor สำหรับเป็นตัวจัดการข้อความต่างๆ เช่นการกำหนดค่าตัวหนา ตัวเอง ตัวขีดเส้นใต้ เป็นต้น และนอกจากนั้นจะได้เรียนรู้การติดตั้งตัว File Browser ที่ทำงานร่วมกันกับ CKEditor ได้อย่างลงตัว ไปเริ่มกันเลย ติดตั้ง Package สำหรับ package ที่เกี่ยวข้องสามารถต...
ใน Apache หากมีการ request worker มากๆ อาจทำให้ระบบไม่สามารถทำงานได้ โดยเมื่อเปิด error log จะปรากฏข้อความลักษณะนี้ [mpm_prefork:error] [pid 9489] AH00161: server reached MaxRequestWorkers setting, consider raising the MaxRequestWorkers setting วิธีการแก้โดยการเปิดไฟล์ cofig/extra/ht...
เปิดไฟล์ httpd.conf ใน XAMPP/xamppfiles/etc/httpd.conf จากนั้นเอาเครื่องหมาย # ออกในบรรทัด # Virtual hosts Include etc/extra/httpd-vhosts.conf แก้ไขส่วน User ค้นหา User daemon Group daemon แก้เป็น Username ที่ login ของคุณ User yourusername Group daemon จากนั้นเปิดไฟล์...
ในบทเรียนรู้นี้เรามาเพิ่ม Font ใน mPDF version 7 กัน โดย Concept คือ เพิ่ม Font Angsana และ Sarabun โดยมีขั้นตอนดังนี้ 1.นำ Font Angsana.ttf และ Sarabun.ttf วางใน web/fonts/ 2.ในหน้าสำหรับ Generate PDF เพิ่มการตั้งค่า Fonts ดังนี้ use kartik\mpdf\Pdf; use Mpdf\Config\ConfigVariables; us...
สำหรับบทเรียนรู้นี้เรามาสร้าง RBAC หรือ Role Base Access Control ที่มีการบันทึกลงไฟล์ PHP แทนการเก็บไว้ใน Database RBAC มาแก้ปัญหา 1 คน 1 สิทธิ์ ซึ่งโดยปกติแล้วเวลาเก็บข้อมูลสิทธิ์ของ user นั้นทั่วไปจะกำหนด 1 คน 1 สิทธิ์ เช่น สิทธิ์ผู้ดูแลระบบ สิทธิ์ผู้ใช้งาน แต่ในความเป็นจริงในระบบที่ซับซ้อ...
หลังจากที่รอคอยมายาวนานหลังจาก Bootstrap ออก version 4 ตอนนี้ Yii Framework ก็ได้ออก Package สำหรับสาวก Bootstrap 4 เรียบร้อยแล้ว โดยใช้ชื่อ Package ว่า yii2-bootstrap4 โดยสามารถติดตั้งผ่าน composer โดยใช้คำสั่ง composer require yiisoft/yii2-bootstrap4 แก้ไข frontend/assets/AppAss...
หลายๆ ครั้งในการแสดงผลด้วยกราฟจาก HighChart แล้วเกิดปัญหาการแสดงวรรณยุกต์และสระผิดเพี้ยนไป ทำให้กราฟดูไม่ถูกต้องสวยงาม ในส่วนที่เป็น Label ทั้งหลาย วิธีการแก้ไขได้แก่การกำหนดให้ใช้ HTML นั่นเอง 'useHTML' => true, ตัวอย่าง <?= Highcharts::widget([ 'script...
สำหรับบทเรียนรู้นี้เป็นการแชร์การทำ Authentication Baerer แบบ Token JWT (ใช้ firebase jwt) สำหรับการเข้าถึง API โดยมีการ custom route ก่อนอื่นขอแชร์ Starter Package ไว้ก่อนล่ะกันครับ https://github.com/kongoon/yii2-training-laos-pdr สามารถ clone มาทดลองใช้กันได้ครับ หมายเหตุ ถ้าใ...
บทเรียนรู้นี้เรามาแปลง timestamp เป็น Y-m-d H:i:s หรือ format อื่นๆ ได้ตามต้องการ ปัญหาคือ ใน database เราเก็บข้อมูลแบบ timestamp ซึ่งเมื่อเรานำมาแสดงผลใน DatePicker จะไม่สามารถนำมาแสดงผลได้ถูกต้อง ดังนั้นเราจะต้องแปลงกลับไปกลับมาด้วย beforeSave() เมื่อเพิ่ม/แก้ไขข้อมูล และ afterFind() เมื่อ เลือกข้...
Bulma เป็น CSS Framework อีกตัวหนึ่งที่มีความนิยมไม่แพ้ Bootstrap ซึ่งเราสามารถนำมาใส่ใน Yii Framework 2 เราได้เหมือนกัน ติดตั้ง Bulma ก่อนอื่นเนื่องจาก bulma เป็น package หนึ่งของ bower ดังนั้นเรามาติดตั้ง bulma ผ่าน bower package โดยเข้าไปที่ root ของ project แล้วพิมพ์คำสั่ง b...
ในบทเรียนรู้นี้เป็นการแก้ปัญหาโดยให้สมาชิก Login เพียงแค่เครื่องเดียว ที่ Login ใช้งานล่าสุด ตัวที่ Login ค้างไว้ให้ Logout แบบ Auto ซึ่งนั่นเราจะต้องจัดการกับ Session ที่เข้าใช้งานเว็บไซต์ให้ได้นั่นเอง โดยทั่วไปแล้ว Session จะเกิดที่ Browser ฝั่ง Client และจะถูกทำลายไปเมื่อปิด Browser ฉะนั้น...
สำหรับ Amazon Web Service นั้นมีบริการ S3 Storage ที่ออกข่าวว่ามีค่ายโทรศัพท์ค่ายหนึ่งทำการ public จนมีการคัดลอกสำเนาบัตรประชาชนออกไปได้นั่นแหละครับ คือถ้าไม่ public มันจะไม่สามารถ access จากที่อื่นๆ ได้นั่นเอง ทีนี้ตัว S3 Storage นั้นมี PHP SDK ให้เราโดยสามารถติดตั้งผ่าน composer ได้โดยใช้คำ...
ใน Yii Framework 2 นั้นหากเราติดตั้งที่ server ที่เราไม่สามารถเปลี่ยน document root ของเว็บไซต์ไปที่ frontend/web ได้ เมื่อเรา request ไปยังเว็บจะทำให้ url ยาว เช่น yourdomain.com/frontend/web ดังนั้นในบทเรียนรู้นี้เราจะมาตัด frontend/web หรือ backend/web ออก ให้สามารถเรียก url yourdomain.com แล...
ในบทเรียนรู้นี้เรามาเรียนรู้การสร้างฟอร์มสำหรับการแก้ไขทีละหลายๆ record ด้วย Yii Framework ซึ่งเป็นการสร้าง input แบบ multiple input นั่นเอง โดยมีตัวอย่างดังต่อไปนี้ PostController <?php namespace frontend\controllers; use Yii; use yii\base\Model; use yii\web\Controller; use comm...
ในบทเรียนรู้นี้เราจะมาสร้างลิ้งค์สำหรับเปลี่ยนภาษาในระบบ โดยทำงานร่วมกับ Package localeurls ซึ่งก่อนอื่นก็ติดตั้ง Package นี้เสียก่อนโดยพิมพ์คำสั่งใน cmd composer require codemix/yii2-localeurls จากนั้นตั้งค่าใน frontend/config/main.php ดังนี้ 'urlManager' => [ 'class' =...
สำหรับ Yii Framework 2 นั้น โดยทั่วไปเราสามารถใช้ AccessControl ในการจัดการสิทธิ์การเข้าถึงได้เพียงแค่ตรวจสอบว่า login หรือ guest (ยังไม่ login) แต่ถ้าหากเราต้องการกำหนดสิทธิ์เพิ่มเติมให้กับ user เช่น สิทธิ์ admin, staff, member เป็นต้นนั้น เราจะต้องสร้าง Rule class ขึ้นมาเพื่อตรวจสอบ แล้วกำหนดใน Ac...
ในบทความนี้เป็นแนวทางในการนำ VueJS มาใช้ร่วมกันกับ Yii Framework 2 ในการโหลดข้อมูล API / JSON มาแสดงผลด้วย Axios โดยไม่ได้ Refresh หน้าเว็บ (คุณสมบัติเด่นเขาล่ะ one page application) Package ที่จะใช้มี 3 ตัวคือ VueJS ตัวพระเอก Axios ตัวนางเอก NProgress เอาไวดู progress การโหลดข้อมูล...
bower เป็น package js และ css ที่สามารถนำไปใช้ใน package ส่วนใหญ่ที่เป็น js web application เช่น nodejs เป็นต้น โดยการนำมาใช้กับ Yii Framework 2 นั้นสามารถติดตั้งผ่าน composer และเรียกใช้งานผ่าน AssetBundle ได้ โดยมีขั้นตอนในการติดตั้ง bower package ดังนี้ การติดตั้ง bower package ตัวอย่างการต...
ใน mPDF เราสามารถสร้าง QR Code แทน Barcode ได้โดยเปลี่ยน type ของ barcode ดังนี้ <?php $qr = 'data or link'; ?> <barcode code="<?=$qr?>" type="QR" size="0.3" error="M" disableborder = "1"/> ตัวอย่าง action ใน Yii2 public function actionStickerPdf(array $selection)...
สำหรับบทเรียนรู้นี้เป็นการใช้งาน Apache Modules ในการบีบอัดเว็บไซต์ ให้เล็กลงก่อนส่งให้ Client (อาจไม่เกี่ยวกับ Yii2 นะครับ แต่ก็ใช้กับ Yii2 ได้ โหลดเว็บไวขึ้นเยอะครับ) โดย apache module ที่จะต้องเปิดใช้งานคือ mode_deflate โดยสามารถเปิดการใช้งานได้ที่ httpd.conf วิธีการ โดยทำการเพิ่มไฟล์ .htaccess ใ...
สำหรับบทเรียนรู้นี้เรามาทำการรวมไฟล์ JavaScript และ ไฟล์ CSS เพื่อบีบอัดให้มีขนาดเล็กลง ซึ่งแน่นอนจะทำให้การโหลดเว็บไซต์ได้ไวมากยิ่งขึ้น โดยทำการติดตั้ง Package yii2-assets-compress โดยพิิมพ์คำสั่งติดตั้งสำหรับ composer ดังนี้ composer require iisns/yii2-assets-compress จากนั้นแก้ไข...
หลังจากที่เรียนรู้การแทรกรูปภาพแล้วในบทเรียนรู้นี้มาแทรกตารางเข้าไปในเอกสาร MS Word จาก MS Word Template กันครับ เริ่มจากการตั้งค่าไฟล์ MS Word Template ให้ได้ตารางตามต้องการก่อน เช่น จะเห็นว่ามีตัวแปร ${no} ${item} ${amount} และ ${price_sum} จากนั้นเขียนโปรแกรมในการ Clone Row ของตาราง โดยใ...
หลังจากที่ได้เรียนรู้วิธีการสร้างเอกสาร MS Word จาก MS Word Template ไปแล้ว (หากยังไม่ได้อ่าน สร้างไฟล์ MS Word จาก Word Template สำหรับงานเอกสารราชการ) ในบทเรียนรู้นี้มาแทรกรูปภาพเข้าไปในเอกสาร MS Word จาก MS Word Template กันต่อ ขั้นแรกให้ทำการสร้างตัวแปรที่จะรับค่ารูปภาพใน MS Word Tem...
sweet alert 2 เป็น css และ js ที่ช่วยในการทำ alert ต่างๆ ในที่นี้เราเปลี่ยน alert ใน yii framework 2 ไปใช้ sweet alert แทน https://limonte.github.io/sweetalert2/ การติดตั้งจะติดตั้งผ่าน bower หากยังไม่มีโปรแกรมให้ดาวน์โหลดและติดตั้งจาก bower.io จากนั้น เปิด command prompt เข้าไปยัง folde...
ปัญหานี้เกิดขึ้นเมื่อสมาชิก (user) เดียว แต่สามารถ login เข้าระบบได้จากหลายๆ เครื่อง หลายๆ browser ทำให้ไม่สามารถควบคุมการใช้งานได้ เช่น user A เข้าเรียนหลักสูตร aaa ได้ จากนั้น user A เอา username และ password ไปแจกเพื่อนๆ 9 คน ซึ่งแต่ละคนก็จะสามารถ login เข้ามาเรียนหลักสูตร aaa ได้ ทำให้เกิดปัญหาแ...
โดยปกติเวลาที่เราออกจากระบบใน Yii Framework 2 นั้นจะต้องส่งข้อมูลไปแบบ POST โดยอาศัยฟอร์มในการส่งข้อมูล เช่นใน Nav $menuItems[] = '<li>' . Html::beginForm(['/site/logout'], 'post') . Html::submitButton( 'ออกจากระบบ (' . Yii::$app->user->ide...
Bootstrap4 ใน Yii Framework 2 นั้นจะมาใน Yii version 2.1 ซึ่งก็คงต้องรออีกสักระยะ และประกอบกับ Bootstrap4 เอง ณ ตอนนี้ก็ยังเป็น version beta อยู่ แต่ถ้าหากว่าเราต้องการใช้งาน Bootstrap4 ใน Yii 2.0.xx แล้วล่ะก็ยังสามารถใช้งานได้เช่นกัน ในบทเรียนรู้นี้เรามาสร้าง layout ที่ใช้งาน Bootstrap4 beta...
เอาล่ะครับ หลังจากที่ประสบปัญหากับการใช้งาน HTML to PDF ด้วย mPDF เนื่องจากไฟล์ PDF ไม่สามารถจัดรูปแบบได้อย่างคล่องตัวมากนัก เช่นคำตก จัดรูปแบบต่างๆ เล็กๆ น้อยๆ ทำให้ไม่สะดวกแก่ผู้ใช้งาน และการจัด HTML ไปเป็น PDF ในรูปแบบเอกสารราชการนี่ปวดหัวจริงๆ ในบทความนี้เราจะมาเขียนโปรแกรมเพื่อให้ส...
มีคนถามมาว่าเราสามารถสร้าง Application เหมือน frontend/backenc ได้ไหม แต่ใช้การตั้งค่าและ vendor เดียวกัน คำตอบคือสามารถทำได้ครับ เพื่อให้เข้าใจ concept จะใช้ต้นแบบจาก backend ในการสร้าง application ชื่อ aomsin สร้างความเข้าใจ ในการสร้าง application ใหม่นั้นเราจะต้องตั้งค่า namespace และกำ...
สำหรับยทเรียนรู้นี้มาทำให้ Web application เราให้สามารถออกจากระบบอัตโนมัติ โดยในที่นี้จะกำหนดให้ออกจากระบบหลังจากไม่ได้ใช้งานเป็นเวลา 5 นาที โดยกำหนดในส่วน component user ซึ่งสามารถกำหนดได้ใน backend และ frontend ในที่นี้จะกำหนดให้ frontend ที่ไฟล์ frontend/config/main.php ข้อกำหนดคือจะต้องกำห...
หลายๆ เว็บไซต์ จะเห็น URL ที่มีข้อความ เช่น www.example.com/post/view/1/ทดสอบ เป็นต้น ซึ่งเราจะเห็นว่ามีคำว่า ทดสอบ อยู่ใน URL ด้วย ส่วนใหญ่แล้ว คำว่า ทดสอบ นั้นจะเป็นคำที่อยู่ใน หัวเรื่อง (Title) นั่นเอง ทั้งนี้การทำ Slug นั้นมีจุดประสงค์ด้านการตอบสนองต่อ Search Engine เนื่องจาก Search Eng...
ปัญหาของ Autocomple ที่แสดงใน Modal คือ เมื่อมีการพิมพ์รายการ รายการต่างๆ ที่มีให้เลือกมันจะแสดงผลอยู่ข้างหลัง Modal ดังนั้นเราจะต้องนำมันออกมาข้างหน้า Modal ด้วยการตั้งค่าต่อไปนี้ 'appendTo'=>'#form-id', ตัวอย่าง <?= $form->field($model, 'name')->widget(AutoComplete::classN...
สำหรับการใช้งาน domain ที่เป็น SSL ใน Yii framework 2 นั้นเราสามารถกำหนดใน server ที่เป็น apache ด้วยการเขียน .htaccess แล้ววางใน root ของ project backend/ common/ frontend/ .htaccess โดยสร้างไฟล์ดังนี้ Options -Indexes RewriteEngine on RewriteRule (^backend) backend/web/$1...
สำหรับบทเรียนรู้นี้เรามาทดลองการแสดงข้อมูลจาก Google Analytics มาแสดงใน Web Application ของเราผ่าน API ของ Google ซึ่งมีขั้นตอนต่อไปนี้ ติดตั้ง Google API Client ทำการติดตั้ง Google API Client กันก่อน โดย copy คำสั่งไปวางใน composer.json "google/apiclient": "^2.0", จากนั้นก็ส...
ปัญหาอย่างหนึ่งของการสร้าง GridView หลายๆ ตัวในหน้าเดียวกันคือเมื่อมีการเลือก หน้า (Pagination) ทุกๆ GridView จะเปลี่ยนหน้าเหมือนกันหมด ในบทเรียนรู้นี้เราจะมากำหนด Page Param แยกอิสระต่อกัน เพื่อให้เวลาเลือกหน้าในแต่ละ GridView ไม่กระทบกัน โดยสามารถตั้งค่าผ่าน DataProvider ดังต่อไปนี้ $data...
Timeago เป็นเรื่องหนึ่งที่ค่อนข้างสำคัญเช่นกัน เป็นการกำหนดรายละเอียดการแสดงผลวันที่ เช่น 1 วันที่ผ่านมา 2 เดือนที่แล้ว หรือ ปีที่แล้ว เป็นต้น โดยมี package ของ jQuery ที่จะแปลงข้อมูลวันเดือนปีและเวลาไปเป็น Timeago ให้อัตโนมัติ ทั้งนี้เราต้องเตรียมข้อมูลให้อยู่ในรูปแบบที่ถูกต้องเสียก่อน ตัวอย...
การนับจำนวนคนอ่าน คนเข้าเว็บไซต์ หรืออื่นๆ สามารถทำได้โดยง่ายใน Yii Framework 2 สมัยก่อนหากต้องการนับนั้นจะทำยุ่งยากมากกว่าเช่น ทำผ่าน createCommand $sql = "UPDATE post SET view_count = view_count + 1 WHERE id = '100'"; Yii::$app->db->createCommand($sql)->query(); แต่เรา...
สวัสดีครับ วันนี้มาแนะนำการใช้งาน Tag ในแต่ละ Post นะครับ ซึ่งเราจะเห็นคุ้นตากันในแต่ละ web เช่น เว็บที่สร้างจาก Wordpress ก็จะมีระบบ Tag มาให้ ในที่นี่เราจะมาสร้างระบบ Tag ใน Yii Framework 2 กันนะครับ เริ่มจาก ติดตั้ง Package ทำการติดตั้ง Package ที่เกี่ยวข้องซึ่งมี 2 Package ด้วยกันคือ y...
ในบทเรียนรู้นี้มาทำความรู้จักและใช้งาน Dropdownlist แบบ Dependent โดย dependent dropdownlist เป็น dropdownlist ที่มีความเชื่อมโยงกัน ตัวอย่างเช่น เลือกจังหวัด จะปรากฏรายการอำเภอในจังหวัดนั้น เมื่อเลือกอำเภอก็จะปรากฏตำบลในอำเภอนั้น เป็นต้น และเราจะทำการเก็บข้อมูลตัวเลือกสุดท้ายลงในฐานข้อมูล หรือน...
SelectionColumn เป็นเครื่องมือที่มีความสะดวกในการเลือกข้อมูลเพื่อทำบางอย่าง เช่น การเลือกเพื่อลบข้อมูล หรือ เลือกเพื่อส่งข้อมูลไปบันทึกในลักษณะ Master Detail เป็นต้น การสร้าง SelectionColumn เพื่อ ลบข้อมูล ตัวอย่างนี้เป็นการสร้าง SelectionColumn เพื่อใช้ในการลบข้อมูล โดยจะใช้ jQuery ในการ...
ตัวอย่างไฟล์ Excel ที่เราจะทำการเขียนโปรแกรมเพื่ออ่าน การ upload และอ่านไฟล์ MS Excel เพื่อนำไปใช้ในระบบ เช่นบันทึกลงฐานข้อมูล หรือนำไปแสดงผลใน GridView (ตามตัวอย่าง) สามารถทำได้โดยใช้ PHPExcel Package ซึ่งสามารถทำได้ดังนี้ สำหรับ PHPExcel สามารถดูรายละเอียดได้ที่ https://github.c...
สำหรับบทเรียนรู้นี้มาสร้างแผนที่ Google Map แบบ Cluster ใน Yii Framework 2 กันครับ โดยจุดพิกัดจะรวมกันเมื่อมีการ Zoom Out และจะแยกกันเมื่อมีการ Zoom In ทำให้ดูง่ายและไม่ลายตาครับ ถือว่าบทเรียนรู้นี้เป็นภาคต่อของ "Extension การสร้างแผนที่แบบต่างๆ ด้วย Google Map ใน Yii Framework 2" ก็ว่า...
บทเรียนรู้นี้เป็นการทดสอบการเขียนโปรแกรมใน Yii2 เพื่อส่งข้อมูลเข้า LINE Group โดยใช้ Notify Bot โดยเป็นการดึงข้อมูลจากฐานข้อมูลแล้วส่งข้อมูลเข้ากลุ่ม (เป็นตัวอย่างการทดสอบ) โดยมีขั้นตอนต่างๆ ดังนี้ เข้า LINE Notify Login เพื่อสร้าง Token และ Bot เพิ่ม LINE Notify เข้าใน LINE Group เขีย...
Bower เป็นแหล่งรวบรวม Package เช่น JavaScript, CSS Package ตัวอย่าง Bootstrap, Highcharts เป็นต้น ในที่นี้เราจะติดตั้ง Highcharts และทดลองใช้งานใน Yii Framework 2 การติดตั้ง ก่อนอื่น เรามาเตรียมตัวก่อนการใช้งานโดยต้องติดตั้ง Node.js และ ทำการ install bower ให้เรียบร้อยโดยใช้...
ในบทเรียนรู้นี้เราจะมาเรียนรู้การใช้งาน Autocomplete ซึ่งเป็นการค้นหาข้อมูลใน TextInput ด้วยการพิมพ์ตัวอัษรแล้วระบบจะกรองข้อมูลมาให้ เช่น พิมพ์ การ ระบบจะค้นหาข้อความที่มีตัวอักษร การ มาเพื่อให้เป็นตัวเลือกนั่นเอง jQueryUI เป็น package ที่สามารถติดตั้งเพิ่มเติมใน Yii Framework 2 ได้โดยใช...
ในบทเรียนรู้นี้เรามาทดลองใช้งาน Realtime Database ใน Firebase ด้วย Yii Framework 2 กันครับ (จริงๆ แล้วสามารถทดลองเขียนแบบไม่ต้องใช้ Yii Framework ก็ได้นะ ลองเอาไปประยุกต์นะครับ) คุณสมบัติเด่นของ Realtime Database ก็ตรงตัวอยู่แล้วนะครับ คือเป็นการทำงานแบบ Realtime ในการทดสอบนี้จะทดลองเขียนเพื่...
การ Login เข้าสู่ระบบใน Yii Framework 2 นั้นโดยปกติเมื่อเข้าระบบแล้วจะสามารถเข้าส่วน Backend และ Frontend โดยไม่ต้อง Login ใหม่ หากต้องการแยก Session การทำงานระหว่าง Backend และ Frontend ก็สามารถทำได้โดยตั้งค่า config ในไฟล์ frontend/config/main.php และ backend/config/main.php ในส่วนของ Componen...
สวัสดีครับ ในบทเรียนรู้นี้เรามาเรียนรู้การทำให้ GridView สามารถ Sort หรือเรียงลำดับได้โดยการลากวางแล้วบันทึกค่าการเรียงลำดับลงในฐานข้อมูล โดยใช้ Package ที่มีชื่อว่า https://github.com/richardfan1126/yii2-sortable-gridview การติดตั้ง สำหรับการติดตั้งสามารถติดตั้งผ่าน Composer ได...
สวัสดีครับก็เป็นกระแสมาสักระยะแล้วสำหรับ LINE Bot ซึ่งตอนนี้เปิดให้ใช้งานแบบ Trial โดยยังเป็น Beta Version อยู่ ดังนั้นในบทเรียนรู้นี้มาลองทำความรู้จักกับ LINE Bot กัน กับการใช้งานผ่าน cURL กันก่อน (จริงๆ ตอนนี้มี PHP SDK) เรื่อง PHP SDK ค่อยว่ากันต่อไปครับ ในที่นี้เราจะสร้าง LINE Bot ให...
Yii2 Scroll Pager เป็น Package สำหรับโหลดหน้าต่อไปแทนการใช้งาน Pagination นั่นเอง รายละเอียดดูได้ที่ https://packagist.org/packages/kop/yii2-scroll-pager การติดตั้ง Yii2 Scroll Pager นั้นให้พิมพ์คำสั่ง composer require kop/yii2-scroll-pager จากนั้นกำหนดค่าใน ListView และ Gr...
Multiple Input เป็นการเพิ่ม Input ในลักษณะ เรียกใช้งาน JavaScript เพื่อเพิ่มช่องสำหรับกรอกข้อมูล เหมาะสำหรับการบันทึกข้อมูลในลักษณะ Master Detail เช่น ใบสั่งซื้อ กับรายการสินค้าที่สั่งซื้อ โดยที่ ใบสั่งซื้อ 1 ใบ มีรายการสินค้าได้หลายชิ้น นั่นเอง จากตัวอย่างนี้เราจะใช้ Package เสริมสำหรับ Yii2...
การสร้าง Barcode ด้วย Yii Framework 2 นั้นสามารถทำได้โดยใช้ Extension yii2-mpdf https://packagist.org/packages/kartik-v/yii2-mpdf ซึ่งสามารถติดตั้งผ่าน composer โดยพิมพ์คำสั่ง composer require kartik-v/yii2-mpdf คัดลอกไฟล์ kv-mpdf-bootstrap.css จาก yii2-project\vendor\...
ใน Part 2 เป็นการตั้งค่า Yii Framework เพื่อให้สามารถ Connect กับ Social Network ต่างๆ ได้ และทำการแสดงข้อมูลเมื่อเชื่อมต่อได้ ติดตั้ง AuthClient ทำการติดตั้ง AuthClient โดยพิมพ์คำสั่ง ใน Project ดังนี้ composer require --prefer-dist yiisoft/yii2-authclient เปิดการใช้งาน...
AuthClient เป็น Extension สำหรับ Yii Framework 2 ซึ่งทำให้เราสามารถเชื่อมต่อกับ Social Media ได้อย่างง่ายดาย เช่นการเข้าระบบด้วย Facebook, Live, LinkedIn, Google+, Twitter และอื่นๆ ติดตั้ง Yii Framework 2 ทำการสร้าง Project ชื่อ yii2-social composer create-project yiisoft/yii2-app-adv...
การติดตั้ง Yii Framework 2 บน Windows Server ในที่นี้ใช้ Windows Server 2008 ในการติดตั้ง ใช้ฐานข้อมูล Microsoft SQL Server และใช้ IIS เป็น Web Server เริ่มจากการตั้งค่า IIS ด้วย Internet Information Services Manager จากนั้นคลิกเลือก Sites หากยังไม่มีให้สร้างใหม่ จากนั้นกด Basic Set...
การติดตั้งและใช้งาน Google Visualization Organization Chart โดยติดตั้งผ่าน Composer การติดตั้ง สำหรับการติดตั้งจะติดตั้ง Package ด้วย Composer โดยพิมพ์คำสั่ง composer require kongoon/yii2-orgchart การใช้งาน [['v' => 'ค่าอ้างอิง(NodeID)', 'f' => 'ส่วนแสดงผลใช้ HTML ได้'],...
C3JS เป็น JavaScript Chart ซึ่งสามารถนำมาใช้ได้ภายใต้ MIT License สำหรับ Yii Framework 2 นั้น ผมได้ทำ Package ไว้สำหรับติดตั้งและใช้งาน ดังนี้ การติดตั้ง สำหรับการติดตั้งพิมพ์คำสั่ง composer require kongoon/yii2-c3js-chart การใช้งาน ตัวอย่างการใช้งานใน view ของ Yii2 &...
การแก้ไขปัญหาเมื่อสั่งติดตั้ง composer-asset-plugin แล้วเกิด Error [ReflectionException] Class Fxp\Composer\AssetPlugin\Repository\NpmRepository does not exist โดยพิมพ์คำสั่งดังต่อไปนี้ composer global require fxp/composer-asset-plugin --no-plugins จากนั้นสั่ง update composer com...
ธีมแนวราชการสำหรับ Yii Framework 2 สามารถติดตั้งผ่าน Composer โดยพิมพ์คำสั่ง composer require kongoon/yii2-theme-ratchakarn หากพบข้อผิดพลาดประการใดกรุณาแจ้ง Issue ได้ที่ https://github.com/kongoon/yii2-theme-ratchakarn/issues การใช้งาน สำหรับ frontend เปิดไฟล์ frontend/c...
BlameableBehavior เป็น behavior ใน Model มีไว้สำหรับการบันทึกผู้ Create และ Update โดยอัตโนมัติ เวลาที่เพิ่มข้อมูลจะนำ id ของ user ที่ login บันทึกลง created_by และ updated_by โดยอัตโนมัติ หากไม่มี User Login จะ return ค่าเป็น null https://github.com/yiisoft/yii2/blob/master/framewor...
ปัญหาของวันที่นั้นค่อนข้างสำคัญ ในประเทศไทย ส่วนใหญ่ใช้รูปแบบ พุทธศักราช เช่น 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 มี...
AJAX Validation เป็นการตรวจสอบข้อมูลโดยการใช้เทคนิค AJAX ตามเหตุการณ์ต่างๆ เช่น เมื่อค่าเปลี่ยน (onChange) หรือเมื่อส่งข้อมูล (onSubmit) ให้ทำการตรวจสอบตาม Rules ที่ได้กำหนดไว้ ดูเรื่อง Validating Input เพิ่มเติมได้ที่ http://www.yiiframework.com/doc-2.0/guide-input-validation.html ...
หลักการทำงาน 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 พร้อมทั้งระบบการลบรูปภาพออกจากระบบด้ว...
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...
AdminLTE คืออะไร? AdminLTE คือ Theme ที่ถูกพัฒนาโดย Almsaeed Studio และได้มีการแจกให้สามารถนำไปใช้ได้ฟรี โดยสามารถดูตัวอย่างของ Theme ได้ที่ https://almsaeedstudio.com/preview Yii2 AdminLTE คืออะไร? Yii2 AdminLTE คือ การนำ Theme AdminLTE มาทำให้อยู่ในรูปแบบของ Packa...
สำหรับ Yii Framework 2 นั้นแน่นอนเราสามารถกำหนด Title ให้แต่ละหน้าได้ แต่นอกเหนือจากนั้นเราจะกำหนดได้อย่างไรเช่น keywords, description หรือแม้แต่ tag ด้าน social media เช่น og:image, og:desctiption, twitter:image เป็นต้น ใน Tutorial นี้เรามาทำให้ Web Application เรารองรับ Search Engine และ Social Me...
ทำไมต้อง PDF? แน่นอนครับ คงเป็นเรื่องที่ยุ่งยากแน่ๆ เมื่อเราจะสร้างไฟล์ pdf โดยใช้เทคโนโลยีด้าน Web Application นั่นก็หมายความว่าเราจะเอาคำสั่ง HTML ไปสร้างเป็น HTML นั่นเอง สมัยก่อนการสร้างไฟล์ pdf นั้นค่อนข้างยากลำบากมาก tag ต่างๆ ใช้ไม่ค่อยได้ การจัดรูปแบบให้ตรงตามความต้องการนั้นแสนลำบาก ใน...
Paypal คืออะไร เข้าใจง่ายๆ Paypal คือธนาคารออนไลน์นั่นเองครับ ซึ่ง Paypal ได้สร้าง API ไว้ให้เราได้เขียนโปรแกรมในการเชื่อมต่อ รับชำระเงิน ตัดบัตรเครดิต (ในไทยยังใช้ไม่ได้) และสามารถถอนเงินเข้าบัญชีธนาคารในบ้านเราได้อย่างง่ายดาย เอาล่ะครับ อาจจะค้นหาเพิ่มเรื่อง Paypal กันต่อได้ แต่ในส่วนนี้ไม...
TimestampBehavior คืออะไร? TimestampBehavior เป็นตัวช่วยในการบันทึกข้อมูล Timestamp ลงในฐานข้อมูลในกรณีที่มีการเพิ่มหรือแก้ไขข้อมูล ทำให้สะดวกในการเขียนโปรแกรม โดยไม่ต้องเขียนในส่วนโปรแกรมให้ insert/update ซึ่ง behavior นี้จะกำหนดใน Model ค่าเริ่มต้นของ field/attribute ที่จะทำงานอัตโนมัติคือ...
ทำไมต้องทำ Transaction? เรื่องของ Transaction นั้นเป็นเรื่องที่มีมาค่อนข้างนานพอสมควร ข้อดีของการทำ Transaction คือ ในกรณีที่มีการทำงานกับคำสั่งในการประมวลผลฐานข้อมูลหลายๆ คำสั่ง ซึ่งอาจมีบางคำสั่งที่ไม่สามารถทำงานได้ หากเราเขียนโปรแกรมแบบเดิมก็จะมีการกระทำการกับคำสั่งมาเรื่อยๆ จนเกิด error ในคำส...
สำหรับหลายๆ เว็บไซต์ที่เราเคยเห็นหรือเคยใช้งานจะมีปุ่ม Login with Facebook สงสัยไหมครับว่ามันทำงานอย่างไร หรือมันมีขั้นตอนในการสร้างอย่างไร ไปดูทีละขั้นตอนกันเลยครับ สร้าง Facebook App สร้าง Facebook App เพื่อใช้ในการตั้งค่าระดับการเข้าถึงว่าต้องการให้เว็บเราใช้ข้อมูลอะไรของ Facebook User ได้&...
Migration คืออะไร Migration คือการสร้าง versioning ของการทำงานกับฐานข้อมูล เช่น การสร้างตาราง การเพิ่ม field การลบ field เพื่อให้เห็น version ต่างๆ และทราบที่มาที่ไปได้ การ Migration จึงมีความสำคัญกับการพัฒนาระบบที่ทำงานเป็นทีมหลายๆ คน รูปแบบของ Migration นั้นถูกนำมาใช้ให้เหมือนกับการ Codin...
Geochart เป็นการให้บริการการแสดงแผนที่จาก Google ซึ่งเป็นบริการแบบฟรีโดยสามารถดูรายละเอียดเพิ่มเติมได้ที่ https://developers.google.com/chart/interactive/docs/gallery/geochart สำหรับตัวอย่างนี้จะเป็นการจำลองการรายงานจำนวนอุบัติเหตุที่เกิดขึ้นทั่วประเทศซึ่งมีการเก็บข้อมูลในฐานข้อมูลแล...
Google Map API เป็นอีกหนึ่งบริการจาก Google ซึ่งเราสามารถเขียนโปรแกรมเพื่อเรียกใช้งาน API ในการแสดงแผนที่ได้ โดยสามารถกำหนดพิกัดหรือตำแหน่งของสิ่งที่เราต้องการลงในแผนที่ได้เช่น ตำแหน่งสำนักงานย่อย ตำแหน่งโรงเรียนในสังกัด ตำแหน่งโรงพยาบาลส่งเสริมสุขภาพตำบลในจังหวัด เป็นต้น การเปิดใช้งาน Google Map...
สำหรับ HightCharts นั้นเป็นระบบการทำกราฟที่เป็น JavaScript โดยจะทำงานที่ฝั่ง Client ดังนั้น เราจำเป็นจะต้องสร้างข้อมูลจากฐานข้อมูลให้อยู่ในรูปของ JavaScript เพื่อส่งให้ HightCharts แสดงผล แต่สาหรับการจัดการกับ HightCharts ในบทนี้จะสร้างกราฟจาก Yii2 Extension ที่มีคนได้ทำไว้ในรูปแบบของ PHP แล้ว โดยทำ...
MySQL PostgreSQL MongoDB Microsoft SQL Server Oracle เรียนรู้การใช้งาน Yii Framework 2 สำหรับการติดต่อฐานข้อมูลต่างๆ โดยเปิดไฟล์สำหรับหรับตั้งค่าการเชื่อมต่อฐานข้อมูลในไฟล์ common/config/main-local.php จากนั้นตั้งค่าการเชื่อมต่อในส่วนของ Components return [...
เรียนรู้การทำงานและการใช้งาน Scenario ใน Model สำหรับ Yii Framework 2 ทำไมต้องใช้ Scenario ? คงเป็นคำถามเพื่อสร้างความเข้าใจ ซึ่งเพื่อให้เข้าใจง่ายขึ้นจะขออธิบายว่า Scenario คือการเปิดเผย Attribute (Property) บางส่วนในบางสถานะหรือบางเหตุการณ์ ตัวอย่างเช่น ใน case ของการตรวจรักษาโรค เรา...
การแก้ไขปัญหาเมื่อไม่สามารถติดตั้งต่อได้ โดย Command Prompt โดยมีข้อความแสดง token(hidden) เนื่องจากระบบการติดตั้งผ่าน Composer จะอ้างอิง access token ในการติดตั้ง ซึ่ง access token จะอยู่ใน GitHub Account โดยจะต้องสมัครสมาชิก www.github.com และทำตามขั้นตอนดังนี้ ขั้นตอนแรก เข้าระ...
สำหรับ Role Base Access Control หรือ RBAC นั้นเป็นการจัดการสิทธิ์การเข้าถึง Action ต่างๆ คล้ายกันกับการใช้งาน Access Control Filter แต่มีความแตกต่างเพิ่มเติมคือ ผู้ใช้งานหนึ่งคนสามารถมีหลายบทบาทได้ เช่น บทบาทเป็น admin ของ ระบบ A แต่เป็น user ของระบบ B เป็นต้น ใน Yii2 นั้นสามารถเก็บ...
สวัสดีครับในตอนนี้เป็นตอนสำหรับการทำ CRUD แบบ AJAX นั้นสามารถทำได้หลายวิธี ในขั้นตอนนี้เป็นแนวทางหนึ่งในการทำเท่านั้นเอง ไปดูว่ามีขั้นตอนอย่างไรบ้างกันครับ กำหนด AJAX ในหน้า index.php สำหรับ actionIndex() ที่มี GridView กำหนด actionCreate(), actionView() และ actionUpdate() เป็นแบบ r...
สำหรับบทความชุดนี้เป็นแนวทางสำหรับการทำ Theme ในรูปแบบ Material Design สำหรับ Yii2 Advanced Application Template นะครับ โดยมีขั้นตอนดังต่อไปนี้ ดาวน์โหลด Theme สร้าง Project สร้าง Folder เก็บ Theme สร้าง AppAsset สำหรับ Theme สร้าง layout หลัก โหลด Layout ใน Web Application...
การใช้งาน kartik Select2 จากตัวอย่างนี้เป็นตัวอย่างการใช้งาน Select2 โดยการเลือกคำนำหน้าเป็นการสมมติทดสอบข้อมูลหากมีข้อมูลจำนวนมากๆ ถ้ามีการ select ขึ้นมาใส่ใน Select จะทำให้ Web Application ทำงานได้ช้ามาก ดังนั้นทางออกคือทำ Select แบบ AJAX ดึงข้อมูลมาเฉพาะที่ค้นหา ส่วน View สำหรับการแสดง Sel...
สำหรับ Yii2เมื่อเวลาผ่านไปทาง Yii2 Official ได้มีการอัพเดทหรือปรับปรุงคุณสมบัติต่างๆ เพิ่มเติมในระบบ และส่วนเสริมต่างๆ เพื่อให้ระบบ Web Applicationที่เราสร้างมีความเป็นปัจจุบันเราจึงต้องมีการอัพเดทด้วยเช่นกัน สำหรับคำสั่งในการอัพเดทนั้นให้เข้าไปที่ Folder Project แล้วใช้คำสั่งดังนี้...
สำหรับ Pretty URL สำหรับ Yii Advanced Application Templateนั้นเราต้องจัดการ 2 ส่วน คือส่วนของ Frontendและส่วนของ Backend สำหรับการทำ Pretty URL นั้นจำเป็นต้องเปิดใช้งาน rewrite_module ของ Apache ก่อน เพื่อให้การทำงานของขั้นตอนนี้ถูกต้อง ถ้าเป็น WAMP Server ให้กด W->Apache->Ap...
สำหรับ Yii2 Advanced Application Templateนั้นมี 2 ส่วนด้วยกันนั่นคือ Frontendและ Backendโดยทำ Virtual Host ให้กับ 2 ส่วนนี้ โดย Frontend นั้นจะเป็นค่าเริ่มต้นสำหรับ Domain เช่น http://yii2-advanced.devส่วน Backend นั้นจะเป็น Subdomain เช่น http://backend.yii2-advanced.devโดยมีการตั้งค่...
การเข้าใช้งาน Gii Generator นั้นเข้าผ่าน URL http://localhost/yii2-advanced/frontend/web/index.php?r=gii จะปรากฏหน้า Web Applicationดังนี้ การสร้าง Modelด้วย Gii การสร้าง Modelด้วย Gii นั้นมีขั้นตอนที่ง่ายดายเพียงเข้าเมนู Model Generator โดยควรที่จะสร้าง Mode...
เปิด Command Promptแล้วไปที่ D:\wamp\www หรือ root ของ web server พิมพ์คำสั่งในการ ติดตั้ง composer asset plugin (ทำครั้งแรก ครั้งเดียว) composer global require "fxp/composer-asset-plugin:1.1" พิมพ์คำสั่งในการสร้าง Web Application จาก Advanced Application&nbs...
สำหรับ Virtual Host นั้นเป็นการจำลองการเรียก Web Applicationผ่าน Domain URL เช่น http://yii2-basic.dev เป็นต้น สำหรับวิธีการนั้นทำได้ไม่ยาก มี 2 ขั้นตอนดังนี้ แก้ไขไฟล์ httpd-vhosts.conf สำหรับไฟล์นี้จะบรรจุอยู่ใน d:/wamp/bin/apache/apachex.x.x/conf/extra/httpd-vhosts.co...
Gii Generator เป็นเครื่องมือที่มีความสำคัญสำหรับ Yii Frameworkซึ่งเป็นเครื่องมือที่ช่วยในการสร้าง Code ให้สามารถพัฒนา Web Applicationได้อย่างรวดเร็วมากยิ่งขึ้นภายใต้ธรรมเนียมของ Yii Framework การเข้าใช้งาน Gii Generator นั้นสามารถเรียกจาก URL web/index.php?r=giiสำหรับการติดตั้งแบบ Basic โดยจะ...
สำหรับ Yii2จะมี Web Application Templateอยู่ 2 แบบ นั่นคือ Yii2 Basicใช้สำหรับสร้าง Web Application ทั่วไป และ Yii2 Advancedใช้สำหรับสร้าง Web Application ที่มีความซับซ้อนมากกว่า โดยข้อแตกต่างระหว่าง Yii2 Basic และ Yii2 Advanced นั้นคือการแบ่งระบบของ Yii2 Advanced นั้นจะแบ่งส่วน backendและ front...
ก่อนการติดตั้ง Yii Framework 2 นั้นต้องทำการติดตั้งโปรแกรมที่เกี่ยวข้อง เนื่องจากเทคโนโลยีที่ใช้ใน Yii Framework 2 นั้นเป็นเทคโนโลยีใหม่ ซึ่งใช้การติดตั้งผ่านโปรแกรม Composer ตามมาตรฐาน PSR ซึ่งต้องเตรียมเครื่องมือดังนี้ Composer โปรแกรม Composer สามารถดาวน์โหลดได้จากเว็บไซต์ http...
สำหรับการเรียนรู้ Yii2 ในหนังสือเล่มนี้จะใช้ WAMP Server ในการทดสอบ โดยสามารถดูรายละเอียดได้ที่ www.wampserver.com ซึ่งมีวิธีการดาวน์โหลดและติดตั้งดังนี้ ติดตั้ง WAMP Server WAMP Server เป็น Web Server ที่สามารถจำลองเครื่องของเป็น Web Server สำหรับ Run Scri...
Yii Framework คือ PHP Framework และ PHP Frameork คือ โปรแกรมที่ถูกเขียนขึ้นโดยใช้ภาษา PHP ที่เขียนขึ้นบนการออกแบบซอร์ฟแวร์ในลักษณะ Model, View และ Controller (MVC) ซึ่งเขียนขึ้นในรูปแบบของ Object Oriented Programming (OOP) ความหมายและที่มา Yii หรือ ยี่ ย่อมาจาก Yes It I...
พื้นฐาน Yii Framework คืออะไร หลักการทำงานของ Yii Framework 2 Request Life Circle ทำความเข้าใจ MVC ใน Yii Framework 2 ทำความเข้าใจเส้นทาง (Routing) ใน Yii Framework 2 แม่แบบ(Application Template) ใน Yii2 การเตรียมเครื่องมือก่อนการติดตั้ง Yii Framework 2 (Yii2) การติดตั้...