Laravel 5 /Carbon:发现意外数据/数据缺失
Laravel 5 /Carbon : Unexpected data found / data missing
我现在不知道从哪里开始。我刚刚开始使用 Laravel 并尝试使用 Carbon & Faker 为数据库播种随机数据。我收到此错误消息:
[InvalidArgumentException]
Unexpected data found.
Unexpected data found.
Unexpected data found.
Data missing
我在 SO 上阅读了几个主题,但没有任何内容可以帮助我弄清楚发生了什么。我实际上正在按照教程进行操作,所以一切都应该没问题,但由于我可能使用的 Laravel 版本不同,所以我不确定(这里和那里的未成年人更改)。
这是我尝试播种的 table 的代码 (utilisateursTableSeed.php) :
<?php
use Illuminate\Database\Seeder;
use Carbon\Carbon;
class utilisateursTableSeeder extends Seeder
{
private function datealeatoire(){
return Carbon::createFromDate('null', rand(1,12), rand(1,28));
}
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
DB::table('utilisateurs')->delete();
$faker = Faker\Factory::create();
for ($i=0; $i<20; $i++){
$date=$this->datealeatoire();
DB:table('utilisateurs')->insert([
'titre'=> text(50),
'texte'=>text(),
'created_at'=>$date,
'updated_at'=>$date
]);
}
}
}
我的函数 up() 如下所示:
public function up()
{
Schema::create('utilisateurs', function (Blueprint $table) {
$table->increments('id');
$table->string('titre');
$table->text('texte');
$table->timestamps();
});
}
我试图更改日期格式,但它只是给我带来了一些其他错误。我不知道该怎么做...如果您需要更多信息,请告诉我。
如果能提供任何帮助,我将不胜感激
编辑:另外,当我将 createFromDFate 中的 'null' 值更改为普通日期(即 2017 年)时,我收到一条错误消息:
[Symfony\Component\Debug\Exception\FatalThrowableError]
Call to undefined function table()'
但这不应该引发错误,对吗?我的意思是,我不应该在这里插入任何类型的日期吗?
您将 null
作为字符串而不是数据类型传递。删除引号,它将起作用:
$date = Carbon::createFromDate(null, rand(1,12), rand(1,28));
// object(Carbon\Carbon)(
// 'date' => '2017-06-02 10:28:17.000000',
// 'timezone_type' => 3,
// 'timezone' => 'America/New_York'
// )
您的下一个错误,您在 DB:
之后缺少第二个冒号
DB::table('utilisateurs')->insert
我现在不知道从哪里开始。我刚刚开始使用 Laravel 并尝试使用 Carbon & Faker 为数据库播种随机数据。我收到此错误消息:
[InvalidArgumentException]
Unexpected data found.
Unexpected data found.
Unexpected data found.
Data missing
我在 SO 上阅读了几个主题,但没有任何内容可以帮助我弄清楚发生了什么。我实际上正在按照教程进行操作,所以一切都应该没问题,但由于我可能使用的 Laravel 版本不同,所以我不确定(这里和那里的未成年人更改)。 这是我尝试播种的 table 的代码 (utilisateursTableSeed.php) :
<?php
use Illuminate\Database\Seeder;
use Carbon\Carbon;
class utilisateursTableSeeder extends Seeder
{
private function datealeatoire(){
return Carbon::createFromDate('null', rand(1,12), rand(1,28));
}
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
DB::table('utilisateurs')->delete();
$faker = Faker\Factory::create();
for ($i=0; $i<20; $i++){
$date=$this->datealeatoire();
DB:table('utilisateurs')->insert([
'titre'=> text(50),
'texte'=>text(),
'created_at'=>$date,
'updated_at'=>$date
]);
}
}
}
我的函数 up() 如下所示:
public function up()
{
Schema::create('utilisateurs', function (Blueprint $table) {
$table->increments('id');
$table->string('titre');
$table->text('texte');
$table->timestamps();
});
}
我试图更改日期格式,但它只是给我带来了一些其他错误。我不知道该怎么做...如果您需要更多信息,请告诉我。 如果能提供任何帮助,我将不胜感激
编辑:另外,当我将 createFromDFate 中的 'null' 值更改为普通日期(即 2017 年)时,我收到一条错误消息:
[Symfony\Component\Debug\Exception\FatalThrowableError]
Call to undefined function table()'
但这不应该引发错误,对吗?我的意思是,我不应该在这里插入任何类型的日期吗?
您将 null
作为字符串而不是数据类型传递。删除引号,它将起作用:
$date = Carbon::createFromDate(null, rand(1,12), rand(1,28));
// object(Carbon\Carbon)(
// 'date' => '2017-06-02 10:28:17.000000',
// 'timezone_type' => 3,
// 'timezone' => 'America/New_York'
// )
您的下一个错误,您在 DB:
之后缺少第二个冒号DB::table('utilisateurs')->insert