我有数据库包含一些表..其中一个(thsises表)..我试图播种一些假数据..但当我运行 php artisan db:种子 它抛出一个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)
根据Faker\Generator
类,方法/属性sentences
返回一个字符串数组。
- @property string $ sentence
- @method字符串句子($ nbWords = 6,$ variableNbWords = true)
- @property string | array $ sentences
- @method string |数组句子($ 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),
...
];
}