Yii - डेटा विजेट

Yii डेटा प्रदर्शित करने के लिए विजेट्स का एक सेट प्रदान करता है। आप एकल रिकॉर्ड प्रदर्शित करने के लिए डिटेल व्यू विजेट का उपयोग कर सकते हैं। ListView विजेट, साथ ही ग्रिड दृश्य, का उपयोग फ़िल्टरिंग, सॉर्टिंग और पेजिनेशन जैसी सुविधाओं के साथ रिकॉर्ड की एक तालिका प्रदर्शित करने के लिए किया जा सकता है।

डीबी की तैयारी

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। यह कमांड हमारे DB को प्रबंधित करने के लिए एक डेटाबेस माइग्रेशन बनाएगी। माइग्रेशन फ़ाइल में दिखाई देना चाहिए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इन फ़ील्ड्स के साथ तालिका: आईडी, नाम और ईमेल। यह कुछ डेमो उपयोगकर्ताओं को भी जोड़ता है।

Step 5 - प्रोजेक्ट रूट के अंदर run./yii migrate डेटाबेस में माइग्रेशन लागू करने के लिए।

Step 6 - अब, हमें अपने लिए एक मॉडल बनाने की आवश्यकता है userतालिका। सादगी के लिए, हम उपयोग करने जा रहे हैंGiiकोड जनरेशन टूल। इसे खोलोurl: http://localhost:8080/index.php?r=gii। फिर, "मॉडल जनरेटर" हेडर के तहत "प्रारंभ" बटन पर क्लिक करें। तालिका नाम ("उपयोगकर्ता") और मॉडल वर्ग ("MyUser") भरें, "पूर्वावलोकन" बटन पर क्लिक करें और अंत में, "जनरेट" बटन पर क्लिक करें।

MyUser मॉडल को मॉडल निर्देशिका में दिखाई देना चाहिए।

विस्तार से देखें विजेट

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 विजेट।