Laravel的Migration 和 Seeder 使用

Posted GreyBig

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Laravel的Migration 和 Seeder 使用相关的知识,希望对你有一定的参考价值。

 1、安装Laravel 

composer create-project laravel/laravel learnlaravel5 ^5.5

 

    2、Auth

php artisan make:auth

 3、连接数据库

DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel5
DB_USERNAME=root
DB_PASSWORD=password

   3.1 数据库迁移

php artisan migrate
这时,就可以进行登录了。

  4、Migration  创建一个文章表

php artisan make:migration create_articles_table

成功之后打开 learnlaravel5/database/migrations,你会发现有一个名为 2*****_create_articles_table 的文件被创建了。我们修改他的 up 函数为:

public function up()
{
    Schema::create(‘articles‘, function (Blueprint $table)
    {
        $table->increments(‘id‘);
        $table->string(‘title‘);
        $table->text(‘body‘)->nullable();
        $table->integer(‘user_id‘);
        $table->timestamps();
    });
}

我们首先用Auth创建个ass

 5、Seeder 给文章表填充数据

A. php artisan make:seeder ArticleSeeder

   我们会发现 learnlaravel5/database/seeds 里多了一个文件 ArticleSeeder.php,修改此文件中的 run 函数为:

public function run()
{
    DB::table(‘articles‘)->delete();

    for ($i=0; $i < 10; $i++) {
        AppArticle::create([
            ‘title=> ‘Title .$i,
            ‘body=> ‘Body .$i,
            ‘user_id=> 1,
        ]);
    }
}

    B. 注册ArticleSeeder 到系统内。修改 learnlaravel5/database/seeds/DatabaseSeeder.php 中的 run 函数为:

public function run()
{
    $this->call(ArticleSeeder::class);
}

   C. 由于 database 目录没有像 app 目录那样被 composer 注册为 psr-4 自动加载,采用的是 psr-0 classmap 方式,所以我们还需要运行以下命令把 ArticleSeeder.php 加入自动加载系统,避免找不到类的错误:

composer dump-autoload    作用:当你加入一个新类时,可以用它更新 autoloader

 D. 执行 seed:

php artisan db:seed

   你应该得到如下结果:

? php artisan db:seed
Seeding: ArticleSeeder

   这时候刷新一下数据库中的 articles 表,会发现已经被插入了 10 行假数据:

 








以上是关于Laravel的Migration 和 Seeder 使用的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 编码技巧一

laravel使用migration创建数据表

laravel migration

php Laravel Migration TIps技巧

双剑合璧Laravel AngularJS全栈开发知乎

php Laravel Migration将Null设置为exisiting列