2016-09-16 62 views
1

我有數據庫包含一些表..其中一個(thsises表)..我試圖播種一些假數據..但是當我運行 php artisan分貝:種子 它會引發SQL錯誤。 ..這是我的工廠:使用種子的錯誤異常

$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, 
]; 

});

,這是我的了遷移表函數

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); 
} 

}

當我種子..它拋出錯誤異常(數組到字符串轉換)...任何幫助請!

+0

告訴我你在哪裏以及如何打電話給你的工廠。 –

+0

我稱之爲DatabaseSeeder –

+0

public function run() {this-> call(ThesisesTableSeeder :: class);} –

回答

0

根據Faker\Generator類,方法/屬性sentences返回一個字符串數組。

  • @property串$句子
  • @method串句($ nbWords = 6,$ variableNbWords = TRUE)
  • @property字符串|數組$句子
  • @method串|排列句子($ NB = 3,$ asText = FALSE)

所以,你應該使用方法/屬性sentence代替。例如:

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

謝謝你的男人... –