วันอังคารที่ 30 มิถุนายน พ.ศ. 2563

Yii2 SORT ASC DESC IN Controllers

การใส่ตัวกรองในYii2 ใสใสตัวController เลยง่ายๆ

$dataProvider = new \yii\data\ArrayDataProvider([
            'allModels' => $rawData,
            'pagination' => FALSE,
            //'pagination' => ['pagesize' => 5],
        ]);
        $dataProvider->sort->attributes['DATE_SERV'] = [
            'asc' => ['DATE_SERV' => SORT_ASC],
            'desc'=>['DATE_SERV' => SORT_DESC],
            'label' => 'วันมารับบริการ'
        ];
        $dataProvider->sort->attributes['HOSPNAME'] = [
            'asc' => ['HOSPNAME' => SORT_ASC],
            'desc' => ['HOSPNAME' => SORT_DESC],
            'label' => 'สถานบริการ'
        ];
        $dataProvider->sort->attributes['HOSPCODE'] = [
            'asc' => ['HOSPCODE' => SORT_ASC],
            'desc' => ['HOSPCODE' => SORT_DESC],
            'label' => 'รหัส'
        ];
        return $this->render('thaimed_cup', [
            'searchModel' => $searchModel,
             'dataProvider' => $dataProvider,

        ]);
    }

วันพฤหัสบดีที่ 18 มิถุนายน พ.ศ. 2563

yii2-mpdf ให้รองรับการแสดงฟอนต์ TH Saraban New

ครที่ใช้ Yii2 และติดตั้ง Extension yii2-mpdf เมื่อพิมพ์ไฟล์ pdf จะพบว่าไม่มีฟอนต์ TH Saraban New มาให้เราต้องทำการ config เข้าไปเองโดยมีขั้นตอนดังนี้
1. ต้องดาวน์โหลดฟอนต์ th saraban ก่อน สามารถดาวน์โหลด คลิกที่นี่
2. นำฟอนต์ที่ได้ดาวน์โหลดไปแล้ว copy ไปวางไว้ในโฟลเดอร์ \vendor\mpdf\mpdf\ttfonts
3. เปิดไฟล์ FontVariables.php ซึ่งอยู่ในพาท \vendor\mpdf\mpdf\src\Config\FontVariables.php
4. หาคำว่า "fontdata" จากนั้นเพิ่มโค้ดเข้าไปดังนี้
5. หาคำว่า "sans_fonts" จากนั้นเพิ่มฟอนต์ th saraban โดยเพิ่มโค้ดดังนี้

8. บันทึกไฟล์ให้เรียบร้อย
9. ทดสอบการแสดงผล จะเห็นว่าไฟล์ pdf ของเราสามารถแสดงข้อมูลเป็นฟอนต์ TH Saraban New เรียบร้อยแล้ว


 "thsaraban" => array(
        'R' => "THSarabunNew.ttf",
        'B' => "THSarabunNew-Bold.ttf",
        'I'  => "THSarabunNew-Italic.ttf",
        'BI'   =>  "THSarabunNew-BoldItalic.ttf"
        ),

สร้างปุ่มพิมพ์ Print หน้าเว็บ Yii2

<input class="btn btn-primary" name="btnButton" type="button" value="Print" onClick="JavaScript:window.print();">