我想将用户播种到数据库,但是播种机没有创建密码。
我有此迁移文件
<?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 时,它不会抛出任何错误。
知道为什么播种器不会创建用户名?我的数据库中只有空列...
非常感谢你的帮助。
答案 0 :(得分:2)
尝试在Eloquent::unguard();
循环开始之前添加foreach()
。
此外,迁移(php artisan migrate
命令)仅涉及运行迁移(创建数据库未填充)。
或者,您可以在DatabaseSeeder上$this->call('UsersTableSeeder');
添加,然后就可以运行php artisan migrate --seed