Yii - Gii

Gii; modeller, formlar, modüller, CRUD vb. Oluşturmak için web tabanlı bir kod üreteci sağlayan uzantıdır.

Varsayılan olarak, aşağıdaki jeneratörler mevcuttur -

  • Model Generator - Belirtilen veritabanı tablosu için bir ActiveRecord sınıfı oluşturur.

  • CRUD Generator - Belirtilen model için CRUD (Oluşturma, Okuma, Güncelleme, Silme) işlemlerini uygulayan bir denetleyici ve görünümler oluşturur.

  • Controller Generator - Bir veya birkaç denetleyici eylemi ve bunlara karşılık gelen görünümleriyle yeni bir denetleyici sınıfı oluşturur.

  • Form Generator - Belirtilen model sınıfı için girdi toplamak üzere bir form görüntüleyen bir görünüm komut dosyası oluşturur.

  • Module Generator - Bir Yii modülünün ihtiyaç duyduğu iskelet kodunu üretir.

  • Extension Generator - Bir Yii uzantısının ihtiyaç duyduğu dosyaları oluşturun.

Gii oluşturma aracını açmak için yazın http://localhost:8080/index.php?r=gii: web tarayıcısının adres çubuğunda.

DB'yi hazırlama

Step 1- Yeni bir veritabanı oluşturun. Veritabanı aşağıdaki iki şekilde hazırlanabilir -

  • Terminalde mysql -u root –p komutunu çalıştırın

  • Aracılığıyla yeni bir veritabanı oluşturun CREATE DATABASE helloworld KARAKTER SETİ utf8 COLLATE utf8_general_ci;

Step 2 - Veri tabanı bağlantısını yapılandırın. config/db.phpdosya. Aşağıdaki konfigürasyon şu anda kullanılan sistem içindir.

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

Step 3 - Kök klasörün içinde run ./yii migrate/create test_table. Bu komut, DB'mizi yönetmek için bir veritabanı geçişi yaratacaktır. Taşıma dosyası,migrations proje kök klasörü.

Step 4 - Taşıma dosyasını değiştirin (m160106_163154_test_table.php bu durumda) bu şekilde.

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

Yukarıdaki geçiş, bir userBu alanların bulunduğu tablo: id, ad ve e-posta. Ayrıca birkaç demo kullanıcısı ekler.

Step 5 - Proje kökünün içinde run ./yii migrate veri tabanına geçişi uygulamak için.

Step 6 - Şimdi, bizim için bir model oluşturmamız gerekiyor. usertablo. Basitlik uğruna, kullanacağızGiikod oluşturma aracı. Aç şunuurl: http://localhost:8080/index.php?r=gii. Ardından, "Model oluşturucu" başlığının altındaki "Başlat" düğmesine tıklayın. Tablo Adını ("kullanıcı") ve Model Sınıfını ("MyUser") doldurun, "Önizleme" düğmesini tıklayın ve son olarak "Oluştur" düğmesini tıklayın.

MyUser modeli modeller dizininde görünmelidir.