laravel模型建立和数据迁移和数据填充(数据填充没有成功)未完

Posted 与f

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了laravel模型建立和数据迁移和数据填充(数据填充没有成功)未完相关的知识,希望对你有一定的参考价值。

 

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

php artisan make:model Article -m

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

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

use Illuminate\\Support\\Facades\\Schema;
use Illuminate\\Database\\Schema\\Blueprint;
use Illuminate\\Database\\Migrations\\Migration;

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 Illuminate\\Database\\Seeder;
use App\\Article;

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 = \\Faker\\Factory::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 Illuminate\\Database\\Seeder;
use App\\User;

class UsersTableSeeder extends Seeder
{
    /**
     * Run the database seeds.
     *
     * @return void
     */
    public function run()
    {
        // Let\'s clear the users table first
        User::truncate();

        $faker = \\Faker\\Factory::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 Illuminate\\Database\\Seeder;

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

 

以上是关于laravel模型建立和数据迁移和数据填充(数据填充没有成功)未完的主要内容,如果未能解决你的问题,请参考以下文章

laravel框架之数据迁移和数据填充

Laravel 5.2 数据库迁移和数据填充

Laravel入坑指南——数据迁移与填充

laravel实践24.填充假数据

如何从 Laravel 中的现有数据库创建迁移和模型

laravel的seeder数据填充