使用种子的错误异常
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),
...
];
}
我有数据库包含一些 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),
...
];
}