Maison  >  Article  >  développement back-end  >  Exemples de migration de bases de données et de remplissage de données dans Laravel5.2

Exemples de migration de bases de données et de remplissage de données dans Laravel5.2

黄舟
黄舟original
2017-09-11 09:43:531671parcourir

1. Migration de base de données

La migration de base de données de Laravel fournit une série d'opérations connexes sur les bases de données, les tables, les champs et les index. Ce qui suit prend comme exemple la création d’une table de liens conviviale.

1. Créez une migration

Utilisez la commande Artisan php artisan make:migration create_links_table

Cela générera un fichier nommé 2017_05_06_151645_create_links_table.php fichier. La première moitié du nom "2017_05_06_151645_" est l'horodatage ajouté par Laravel. La seconde moitié de "create_links_table.php" est le nom de la table.

2. Écrivez la logique

Ensuite, ouvrez la classe de migration

2017_05_06_151645_create_links_table.php, qui a deux méthodes : up() et down(). La méthode up() crée une table et la méthode down() supprime la table.


<?php
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreateLinksTable extends Migration
{
    /**
     * 执行迁移
     *
     * @return void
     */
    public function up()
    {
        Schema::create(&#39;links&#39;, function (Blueprint $table){
            $table->engine = &#39;MyISAM&#39;;
            $table->increments(&#39;id&#39;);
            $table->string(&#39;name&#39;)->default(&#39;&#39;)->comment(&#39;名称&#39;);
            $table->string(&#39;title&#39;)->default(&#39;&#39;)->comment(&#39;标题&#39;);
            $table->string(&#39;url&#39;)->default(&#39;&#39;)->comment(&#39;地址&#39;);
            $table->integer(&#39;sort&#39;)->default(50)->comment(&#39;排序&#39;);
        });
    }
    
    /**
     * 回滚迁移
     *
     * @return void
     */
    public function down()
    {
        Schema::drop(&#39;links&#39;);
    }
}

2017_05_06_151645_create_links_table.php
3. Exécutez la migration

Utilisez la commande Artisan

php artisan migrate

Maintenant, dans le base de données Une table hd_links et une table hd_migrations qui enregistrent les migrations ont été créées ("hd_" est le préfixe de table configuré) :

Remarque : si elles sont supprimées manuellement Classes de migration et les fichiers ne peuvent pas être recréés. Utilisez la commande composer dump-autoload pour optimiser le chargement automatique et la migration peut être recréée.

2. Le remplissage des données

peut être utilisé à des fins de test pour remplir certaines données du tableau de la base de données.

1. Créez le remplissage

Utilisez la commande Artisan

php artisan make:seeder LinksTableSeeder

Cela générera un fichier nommé LinksTableSeeder.php

Classe de remplissage de liens conviviale. 2. Écrivez la logique

Ensuite, ouvrez ce fichier

LinksTableSeeder.php

et ajoutez deux enregistrements de test.


3. Appelez le remplissage
<?php
use Illuminate\Database\Seeder;
class LinksTableSeeder extends Seeder
{
    /**
     * 运行数据库填充
     *
     * @return void
     */
    public function run()
    {
        $data = [
            [
                &#39;name&#39; => &#39;Laravel 中文社区&#39;,
                &#39;title&#39; => &#39;Laravel China 社区 - 高品质的 Laravel 和 PHP 开发者社区 - Powered by PHPHub&#39;,
                &#39;url&#39; => &#39;https://laravel-china.org/&#39;,
                &#39;sort&#39; => &#39;49&#39;
            ],
            [
                &#39;name&#39; => &#39;GitHub&#39;,
                &#39;title&#39; => &#39;GitHub is where people build software. More than 21 million people use...&#39;,
                &#39;url&#39; => &#39;https://github.com&#39;,
                &#39;sort&#39; => &#39;49&#39;
            ]
        ];

        DB::table(&#39;links&#39;)->insert($data);
    }
}

dans la classe de remplissage de base de données DatabaseSeeder.php dans le répertoire database/seeds, dans la méthode run(). Remplissage d'appel.

Contenu du fichier DatabaseSeeder.php :


4. Effectuez le remplissage
<?php
use Illuminate\Database\Seeder;
class DatabaseSeeder extends Seeder
{
    /**
     * 运行数据库填充
     *
     * @return void
     */
    public function run()
    {
        $this->call(LinksTableSeeder::class);
    }
}

à l'aide de la commande Artisan

php artisan db : seed

Maintenant, la table hd_links dans la base de données contient 2 enregistrements :

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn