Yii - Widget di dati

Yii fornisce una serie di widget per la visualizzazione dei dati. È possibile utilizzare il widget DetailView per visualizzare un singolo record. Il widget ListView, così come la visualizzazione Grid, possono essere usati per visualizzare una tabella di record con funzionalità come il filtro, l'ordinamento e l'impaginazione.

Preparazione del DB

Step 1- Crea un nuovo database. Il database può essere preparato nei due modi seguenti.

  • Nel terminale eseguire mysql -u root –p

  • Creare un nuovo database tramite CREATE DATABASE helloworld CHARACTER SET utf8 COLLATE utf8_general_ci;

Step 2 - Configurare la connessione al database in config/db.phpfile. La seguente configurazione è per il sistema attualmente utilizzato.

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

Step 3 - All'interno della cartella principale run./yii migrate/create test_table. Questo comando creerà una migrazione del database per la gestione del nostro DB. Il file di migrazione dovrebbe apparire nel filemigrations cartella della radice del progetto.

Step 4 - Modifica il file di migrazione (m160106_163154_test_table.php in questo caso) in questo modo.

<?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');
      }
   }
?>

La migrazione di cui sopra crea un file usertabella con questi campi: id, nome ed email. Aggiunge anche alcuni utenti demo.

Step 5 - All'interno della radice del progetto run./yii migrate per applicare la migrazione al database.

Step 6 - Ora, dobbiamo creare un modello per il nostro usertavolo. Per motivi di semplicità, utilizzeremo ilGiistrumento di generazione del codice. Apri questourl: http://localhost:8080/index.php?r=gii. Quindi, fare clic sul pulsante "Start" sotto l'intestazione "Generatore di modelli". Compilare il nome della tabella ("utente") e la classe del modello ("MyUser"), fare clic sul pulsante "Anteprima" e infine fare clic sul pulsante "Genera".

Il modello MyUser dovrebbe apparire nella directory dei modelli.

Widget DetailView

Il DetailView widgetmostra i dati di un singolo modello. Il$attributes proprietà definisce quali attributi del modello devono essere visualizzati.

Step 1 - Aggiungi il file actionDataWidget metodo al SiteController.

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

Nel codice sopra, troviamo che il primo modello MyUser e lo passiamo al file datawidget Visualizza.

Step 2 - Crea un file chiamato datawidget.php dentro il views/site cartella.

<?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 - Se vai a http://localhost:8080/index.php?r=site/data-widget, vedrai un utilizzo tipico di DetailView aggeggio.