Yii - วิดเจ็ตข้อมูล

Yii มีชุดวิดเจ็ตสำหรับแสดงข้อมูล คุณสามารถใช้วิดเจ็ต DetailView เพื่อแสดงเรกคอร์ดเดียว วิดเจ็ต ListView เช่นเดียวกับ Grid View สามารถใช้เพื่อแสดงตารางของระเบียนที่มีคุณสมบัติเช่นการกรองการเรียงลำดับและการแบ่งหน้า

การเตรียม DB

Step 1- สร้างฐานข้อมูลใหม่ สามารถจัดเตรียมฐานข้อมูลได้สองวิธีดังต่อไปนี้

  • ในเทอร์มินัลให้รันmysql -u root –p

  • สร้างฐานข้อมูลใหม่ผ่าน CREATE DATABASE helloworld CHARACTER SET utf8 COLLATE utf8_general_ci;

Step 2 - กำหนดค่าการเชื่อมต่อฐานข้อมูลในไฟล์ config/db.phpไฟล์. การกำหนดค่าต่อไปนี้ใช้สำหรับระบบที่ใช้ในปัจจุบัน

<?php
   return [
      'class' => 'yii\db\Connection',
      'dsn' => 'mysql:host=localhost;dbname=helloworld',
      'username' => 'vladimir',
      'password' => '12345',
      'charset' => 'utf8',
   ];
?>

Step 3 - ภายในโฟลเดอร์รูท run./yii migrate/create test_table. คำสั่งนี้จะสร้างการย้ายฐานข้อมูลสำหรับจัดการฐานข้อมูลของเรา ไฟล์การย้ายข้อมูลควรปรากฏในไฟล์migrations โฟลเดอร์ของโปรเจ็กต์รูท

Step 4 - แก้ไขไฟล์การย้ายข้อมูล (m160106_163154_test_table.php ในกรณีนี้) ด้วยวิธีนี้

<?php
   use yii\db\Schema;
   use yii\db\Migration;
   class m160106_163154_test_table extends Migration {
      public function safeUp() {
         $this->createTable("user", [ "id" => Schema::TYPE_PK, "name" => Schema::TYPE_STRING, "email" => Schema::TYPE_STRING, ]); $this->batchInsert("user", ["name", "email"], [
            ["User1", "[email protected]"],
            ["User2", "[email protected]"],
            ["User3", "[email protected]"],
            ["User4", "[email protected]"],
            ["User5", "[email protected]"],
            ["User6", "[email protected]"],
            ["User7", "[email protected]"],
            ["User8", "[email protected]"],
            ["User9", "[email protected]"],
            ["User10", "[email protected]"],
            ["User11", "[email protected]"],
         ]);
      }
      public function safeDown() {
         $this->dropTable('user');
      }
   }
?>

การย้ายข้อมูลข้างต้นสร้างไฟล์ userตารางที่มีฟิลด์เหล่านี้: id, ชื่อและอีเมล นอกจากนี้ยังเพิ่มผู้ใช้สาธิตเล็กน้อย

Step 5 - ภายในรูทโครงการ run./yii migrate เพื่อใช้การย้ายข้อมูลกับฐานข้อมูล

Step 6 - ตอนนี้เราต้องสร้างแบบจำลองสำหรับไฟล์ userตาราง. เพื่อความเรียบง่ายเราจะใช้ไฟล์Giiเครื่องมือสร้างรหัส เปิดสิ่งนี้url: http://localhost:8080/index.php?r=gii. จากนั้นคลิกปุ่ม "เริ่ม" ใต้ส่วนหัว "ตัวสร้างโมเดล" กรอกชื่อตาราง (“ ผู้ใช้”) และคลาสรุ่น (“ MyUser”) คลิกปุ่ม“ ดูตัวอย่าง” และสุดท้ายคลิกปุ่ม“ สร้าง”

โมเดล MyUser ควรปรากฏในไดเร็กทอรีโมเดล

วิดเจ็ต DetailView

DetailView widgetแสดงข้อมูลของโมเดลเดียว $attributes คุณสมบัติกำหนดคุณลักษณะของโมเดลที่ควรจะแสดง

Step 1 - เพิ่มไฟล์ actionDataWidget วิธีการ SiteController.

public function actionDataWidget() {
   $model = MyUser::find()->one(); return $this->render('datawidget', [
      'model' => $model
   ]);
}

ในรหัสด้านบนเราพบว่า MyUser รุ่นแรกและส่งต่อไปยังไฟล์ datawidget ดู.

Step 2 - สร้างไฟล์ชื่อ datawidget.php ข้างใน views/site โฟลเดอร์

<?php
   use yii\widgets\DetailView;
   echo DetailView::widget([
      'model' => $model,
      'attributes' => [
         'id',
         //formatted as html
         'name:html',
         [
            'label' => 'e-mail',
            'value' => $model->email,
         ],
      ],
   ]);
?>

Step 3 - หากคุณไปที่ http://localhost:8080/index.php?r=site/data-widgetคุณจะเห็นการใช้งานไฟล์ DetailView วิดเจ็ต