Laravel播种机没有种子密码

时间:2014-07-15 12:14:29

标签: php database laravel seeding

我想将用户播种到数据库,但是播种机没有创建密码。

我有此迁移文件

<?php

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

class CreateUsersTable extends Migration {

/**
 * Run the migrations.
 *
 * @return void
 */
public function up()
{
    Schema::create('users', function(Blueprint $table)
    {
        $table->increments('id');
        $table->string('email')->unique();
        $table->string('username');
        $table->string('password');
        $table->rememberToken();
        $table->timestamps();
    });
}

/**
 * Reverse the migrations.
 *
 * @return void
 */
public function down()
{
    Schema::drop('users');
}

}

以及此播种机文件

// Composer: "fzaninotto/faker": "v1.3.0"
use Faker\Factory as Faker;

class UsersTableSeeder extends Seeder {

    public function run()
    {
        $faker = Faker::create();

        DB::table('users')->truncate();

        foreach(range(1, 3) as $index)
        {
            $user = User::create(array(
                'password' => $faker->word,
                'username' => $faker->userName,
                'email' => $faker->email
            ));
        }


    }

}

我做了php artisan migrate并且说&#34;无需迁移&#34;

所以现在当我做 php artisan db:seed --class = UsersTableSeeder 时,它不会抛出任何错误。

知道为什么播种器不会创建用户名?我的数据库中只有空列...

非常感谢你的帮助。

1 个答案:

答案 0 :(得分:2)

尝试在Eloquent::unguard();循环开始之前添加foreach()


此外,迁移(php artisan migrate命令)仅涉及运行迁移(创建数据库未填充)。

或者,您可以在DatabaseSeeder上$this->call('UsersTableSeeder');添加,然后就可以运行php artisan migrate --seed