zoukankan      html  css  js  c++  java
  • laravel模型建立和数据迁移和数据填充(数据填充没有成功)未完

    开始创建我们的第一个 Article 模型及其对应迁移文件了,我们在项目根目录运行如下 Artisan 命令一步到位:

    php artisan make:model Article -m

    -m 是 --migration 的缩写,告知 Artisan 在创建模型同时创建与之对应的迁移文件(我使用的是 Laradock 作为开发环境):

    当然,还需要编辑默认生成的迁移文件:

    use IlluminateSupportFacadesSchema;
    use IlluminateDatabaseSchemaBlueprint;
    use IlluminateDatabaseMigrationsMigration;
    
    class CreateArticlesTable extends Migration
    {
        /**
         * Run the migrations.
         *
         * @return void
         */
        public function up()
        {
            Schema::create('articles', function (Blueprint $table) {
                $table->increments('id');
                $table->string('title');
                $table->text('body');
                $table->timestamps();
            });
        }
    
        /**
         * Reverse the migrations.
         *
         * @return void
         */
        public function down()
        {
            Schema::dropIfExists('articles');
        }
    }

    然后我们运行如下命令创建对应数据表:

    php artisan migrate

    现在我们回到 Article 模型类添加如下属性到 $fillable 字段以便可以在 Article::create 和 Article::update方法中可以使用它们:

    class Article extends Model
    {
        protected $fillable = ['title', 'body'];
    }

    数据库填充

    Laravel 通过 Faker 库可以快速为我们生成格式正确的测试数据:

    php artisan make:seeder ArticlesTableSeeder

    生成的填充器类位于 /database/seeds 目录下,我们编辑填充器类如下:

    use IlluminateDatabaseSeeder;
    use AppArticle;
    
    class ArticlesTableSeeder extends Seeder
    {
        /**
         * Run the database seeds.
         *
         * @return void
         */
        public function run()
        {
            // Let's truncate our existing records to start from scratch.
            Article::truncate();
    
            $faker = FakerFactory::create();
    
            // And now, let's create a few articles in our database:
            for ($i = 0; $i < 50; $i++) {
                Article::create([
                    'title' => $faker->sentence,
                    'body' => $faker->paragraph,
                ]);
            }
        }
    }

    然后运行填充命令:

    php artisan db:seed --class=ArticlesTableSeeder

    重复上述过程创建一个用户填充器:

    use IlluminateDatabaseSeeder;
    use AppUser;
    
    class UsersTableSeeder extends Seeder
    {
        /**
         * Run the database seeds.
         *
         * @return void
         */
        public function run()
        {
            // Let's clear the users table first
            User::truncate();
    
            $faker = FakerFactory::create();
    
            // Let's make sure everyone has the same password and
            // let's hash it before the loop, or else our seeder
            // will be too slow.
            $password = Hash::make('toptal');
    
            User::create([
                'name' => 'Administrator',
                'email' => 'admin@test.com',
                'password' => $password,
            ]);
    
            // And now let's generate a few dozen users for our app:
            for ($i = 0; $i < 10; $i++) {
                User::create([
                    'name' => $faker->name,
                    'email' => $faker->email,
                    'password' => $password,
                ]);
            }
        }
    }

    编辑 DatabaseSeeder 类:

    use IlluminateDatabaseSeeder;
    
    class DatabaseSeeder extends Seeder
    {
        /**
         * Run the database seeds.
         *
         * @return void
         */
        public function run()
        {
            $this->call(UsersTableSeeder::class);
            $this->call(ArticlesTableSeeder::class);
        }
    }

    后运行 php artisan db:seed 就可以执行所有填充器填充数据。

    数据填充怎么没有成功?

    参考 (转):http://laravelacademy.org/post/9153.html

  • 相关阅读:
    uva 408 Uniform Generator
    Java实现 蓝桥杯VIP 算法提高 栅格打印问题
    Java实现 蓝桥杯VIP 算法提高 栅格打印问题
    Java实现 蓝桥杯VIP 算法提高 栅格打印问题
    Java实现 蓝桥杯VIP 算法提高 打水问题
    Java实现 蓝桥杯VIP 算法提高 打水问题
    Java实现 蓝桥杯VIP 算法提高 打水问题
    Java实现 蓝桥杯VIP 算法提高 打水问题
    Java实现 蓝桥杯VIP 算法提高 不同单词个数统计
    Java实现 蓝桥杯VIP 算法提高 不同单词个数统计
  • 原文地址:https://www.cnblogs.com/fps2tao/p/8724905.html
Copyright © 2011-2022 走看看