使用种子的错误异常

Error Exception using seed

我有数据库包含一些 table ..其中之一(thsises Table)..我试图播种一些假数据..但是当我 运行 php artisan db:seed 它抛出一个 SQL 错误...这是我的工厂 table :

$factory->define(App\Thesise::class, function (Faker\Generator $faker) {

return [
    'program_id' =>$faker->numberBetween($min = 1, $max = 5),
    'ar_title' =>$faker->sentences,
    'en_title' =>$faker->sentences,
    'student_id' =>$faker->numberBetween($min = 3, $max = 20),
    'ar_brief' =>$faker->sentences,
    'en_brief' =>$faker->sentences,
    'ar_expalin' =>$faker->text,
    'en_explain' =>$faker->text,
    'date' =>$faker->date($format = '2000-01-01', $max = 'now'),
    'primary_siminar' =>$faker->date($format = '2000-01-01', $max = 'now'),
    'final_siminar' =>$faker->date($format = '2000-01-01', $max = 'now'),
    'test_date' =>$faker->date($format = '2000-01-01', $max = 'now'),
    'degree_date' =>$faker->date($format = '2000-01-01', $max = 'now'),
    'degree' =>$faker->randomFloat($nbMaxDecimals = 2, $min = 60, $max = 100), // 48.8932
    'degreey' =>$faker->sentences,
    'mat_avg' =>$faker->randomFloat($nbMaxDecimals = 2, $min = 60, $max = 100), // 48.8932
    'final_degree' =>$faker->randomFloat($nbMaxDecimals = 2, $min = 60, $max = 100), // 48.8932
    'f_ad' =>$faker->numberBetween($min = 1, $max = 10),
    'f_a' =>$faker->numberBetween($min = 1, $max = 10),
    'j_ad' =>$faker->numberBetween($min = 1, $max = 10),
    'j1' =>$faker->numberBetween($min = 1, $max = 10),
    'j2' =>$faker->numberBetween($min = 1, $max = 10),
    'file' =>$faker->sentences,
];

});

这是我的迁移函数 table

   public function up()
{
    Schema::create('thesises', function(Blueprint $table) {
        $table->increments('id');
        $table->integer('program_id');
        $table->string('ar_title');
        $table->string('en_title');
        $table->integer('student_id')->unsigned();
        $table->text('ar_brief');
        $table->text('en_brief');
        $table->longText('ar_expalin');
        $table->longText('en_explain');
        $table->date('date');
        $table->date('primary_siminar');
        $table->date('final_siminar');
        $table->date('test_date');
        $table->date('degree_date');
        $table->double('degree');
        $table->string('degreey');
        $table->double('mat_avg');
        $table->double('final_degree');
        $table->integer('f_ad');
        $table->integer('f_a');
        $table->integer('j_ad');
        $table->integer('j1');
        $table->integer('j2');
        $table->string('file');
        $table->timestamps();
    });
}

像这样的 ThesisesTabelSeeder :

class ThesisesTableSeeder extends Seeder
{
/**
 * Run the database seeds.
 *
 * @return void
 */
public function run()
{
    factory(\App\Thesise::class , 10)->create();
}

}

我称它为:

class DatabaseSeeder extends Seeder
{
/**
 * Run the database seeds.
 *
 * @return void
 */
public function run()
{
     $this->call(ThesisesTableSeeder::class);
}

}

当我播种时..它抛出错误异常(数组到字符串的转换)...请提供任何帮助!!

根据Faker\Generator class,method/property sentences returns 一个字符串数组。

  • @property string $sentence
  • @method string sentence($nbWords = 6, $variableNbWords = true)
  • @property string|array $sentences
  • @method string|array sentences($nb = 3, $asText = false)

因此,您应该改用 method/property sentence。例如:

$factory->define(App\Thesise::class, function (Faker\Generator $faker) {
    return [
        ...
        'ar_title' => $faker->sentence, // or.
        'en_title' => $faker->sentence(3, true),
        ...
    ];
}