我正在尝试 Build 我的第一个laravel项目但是当我尝试让工匠用faker播种数据库时它会抛出
[errorException]数组到字符串转换
我只是使用股票用户迁移文件并使用命令php artisan migrate --seed
任何指导将不胜感激
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('name');
$table->string('email')->unique();
$table->string('password', 60);
$table->string('role', array('user', 'admin', 'superuser'));
$table->rememberToken();
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::drop('users');
}
}
这个工匠为我生成的UserTableSeeder
use Illuminate\Database\Seeder;
class UserTableSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
factory(App\User::class, 49)->create();
factory(App\User::class)->create([
'name' => 'admin',
'role' => 'admin',
]);
}
}
这是我的Modelfactory.php
$factory->define(App\User::class, function ($faker) {
return [
'name' => $faker->name,
'email' => $faker->email,
'password' => str_random(10),
'remember_token' => str_random(10),
'role' => $faker->word->randomElement(array('user','superuser')),
];
});
2 回答
$table->string('role', array('user', 'admin', 'superuser'));
您正在选择一种字符串,然后提供一个数组 .
这正是你的错误所说的 .
你的错误是因为这条线
将 string 改为 enum ;例如:
这将执行 .