1

私は最初のlaravelプロジェクトをセットアップしようとしていますが、職人にフェイカーでデータベースをシードさせようとすると、スローされます

[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')),
];
});
4

3 に答える 3

9

$table->string('role', array('user', 'admin', 'superuser'));

文字列のタイプを選択してから、配列を提供しています。

これはまさにあなたのエラーが話していることです。

于 2015-07-16T23:50:49.620 に答える
4

あなたのエラーはこの行によるものです

$table->string('role', array('user', 'admin', 'superuser'));

文字列enumに変更します。元:

$table->enum('role', array('user', 'admin', 'superuser'));

これが実行されます。

于 2016-09-26T07:23:06.837 に答える