码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2018-04-06 00:13:27      阅读:643      评论:0      收藏:0      [点我收藏+]

标签:建立   opener   hash   数据   ash   users   ade   nts   otto   

 

开始创建我们的第一个 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模型建立和数据迁移和数据填充(数据填充没有成功)未完

标签:建立   opener   hash   数据   ash   users   ade   nts   otto   

原文地址:https://www.cnblogs.com/fps2tao/p/8724905.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!