![](/img/trans.png)
[英]SQLSTATE[22007]: Invalid datetime format: 1292 Incorrect datetime value: '28-01-2022 12:00' for column `fotostudio`.`transaction_details`
[英]SQLSTATE[22007]: Invalid datetime format: 1292 Incorrect datetime value: '1970-01-01 00:00:01' for column 'created_at' at row 1
Laravel Framework 5.5.43
Server version Mysql 5.7.23-0ubuntu0.18.04.1
我使用Seeder。
DatabaseSeeder.php
<?php
use Illuminate\Database\Seeder;
class DatabaseSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
$this->call(UsersTableSeeder::class);
// factory(App\User::class, 50)->create();
}
}
UserFactory.php
$factory->define(App\User::class, function (Faker $faker) {
static $password;
return [
'name' => $faker->name,
'email' => $faker->unique()->safeEmail,
'password' => $password ?: $password = bcrypt('secret'),
'remember_token' => str_random(10),
];
});
$factory->defineAs(App\User::class, 'admin',function (Faker $faker) {
return [
'name' => 'user',
'email' => 'user@gmail.com',
'password' => bcrypt('123456'),
'remember_token' => str_random(10),
];
});
$factory->defineAs(App\Article::class, 'admin',function (Faker $faker) {
return [
'title' => '_title',
'slug' => '_slug',
'description_short' => '_description_short',
'description' => '_description',
'meta_title'=>'',
'meta_description'=>'',
'meta_keyword'=>'',
'published'=>'1',
'viewed'=>2,
];
});
UsersTableSeeder.php
<?php
use Illuminate\Database\Seeder;
class UsersTableSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
//
factory(App\User::class, 'admin', 1)->create()->each(function ($user){
$user->user_article()->save(factory(App\Article::class, 'admin')->make());
});
}
}
2018_06_08_112606_create_articles_table.php
public function up()
{
Schema::create('articles', function (Blueprint $table) {
$table->increments('id');
$table->string('title');
$table->string('slug')->unique();
$table->text('description_short')->nullable();
$table->text('description')->nullable();
$table->string('image')->nullable();
$table->boolean('image_show')->nullable();
$table->string('meta_title')->nullable();
$table->string('meta_description')->nullable();
$table->string('meta_keyword')->nullable();
$table->boolean('published');
$table->integer('viewed')->nullable();
$table->integer('created_by')->nullable();
$table->integer('modified_by')->nullable();
$table->timestamps();
});
}
2014_10_12_000000_create_users_table.php
public function up()
{
Schema::create('users', function (Blueprint $table) {
$table->increments('id');
$table->string('name');
$table->string('email')->unique();
$table->string('password');
$table->rememberToken();
$table->timestamps();
});
}
我运行命令:
php artisan migrate:refresh --seed
并获得消息:
Seeding: UsersTableSeeder
In Connection.php line 664:
SQLSTATE[22007]: Invalid datetime format: 1292 Incorrect datetime value: '1970-01-01 00:00:01' for column 'created_at' at row 1 (SQL: insert into `articles` (`title`, `slug`, `description_short`, `description`,`meta_title`, `meta_description`, `meta_keyword`, `published`, `viewed`,`created_at`, `updated_at`) values (_title, title-1409181309, _description_short, _description, , , , 1, 2, 1970-01-01 00:00:01, 2018-09-14 13:09:45));
In Connection.php line 458:
SQLSTATE[22007]: Invalid datetime format: 1292 **Incorrect datetime value: '1970-01-01 00:00:01' for column 'created_at' at row 1
我不明白为什么我为列“ created_at”获得了1970-01-01 00:00:01的值。 我该如何纠正呢?
此外,为什么我为'updated_at'列获得正确的值2018-09-14 13:09:45。 此外,在上面的运行命令之后,将记录插入到用户表中。
我觉得很奇怪。 任何想法? 谢谢。
我建议您更改$table->timestamps();
通过$table->timestamp('created_at')->useCurrent();
改变这个
$factory->defineAs(App\Article::class, 'admin',function (Faker $faker) {
return [
'title' => '_title',
'slug' => '_slug',
'description_short' => '_description_short',
'description' => '_description',
'meta_title'=>'',
'meta_description'=>'',
'meta_keyword'=>'',
'published'=>'1',
'viewed'=>2,
];
对此
$factory->defineAs(App\Article::class, 'admin',function (Faker $faker) {
return [
'title' => '_title',
'slug' => '_slug',
'description_short' => '_description_short',
'description' => '_description',
'meta_title'=>'',
'meta_description'=>'',
'meta_keyword'=>'',
'published'=>'1',
'viewed'=>2,
'created_at' => $faker->dateTime(),
'updated_at' => $faker->dateTime(),
];
与用户工厂相同。
更新
或者,请检查您数据库中各列的日期时间格式。 如果与您发送的内容不匹配,请更正。
希望这对您有所帮助。
您应该在用户模型中设置protected $dates
class User extends Model {
// .. you code
protected $dates = [
'created_at',
'updated_at',
];
// .. you code
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.