php Laravel 5.6修改时间戳

q43xntqr  于 2023-10-15  发布在  PHP
关注(0)|答案(3)|浏览(84)

一个菜鸟问题:我在Laravel中没有成功更改时间戳。我甚至进入我的Model.php更改我的时间戳,但仍然不成功。希望有人能在这件事上指导我。因为我想把我的时间戳改为:
const CREATED_AT = 'creation_date';
const_update_AT = 'last_update';
下面是我的模型:

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Events extends Model
{

    const CREATED_AT = 'creation_date';
    const UPDATED_AT = 'last_update';

    public function event_type(){
        return $this->belongsTo('App\EventsType');
    }

    public function time(){
        $this->hasMany('App\Time');
    }

    // protected $fillable = [

    //     'name', 'description','date_of_event','location','is_Active',

    // ];

}

我的迁移在下面:

<?php

use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;

class CreateEventsTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('events', function (Blueprint $table) {
            $table->increments('id');
            $table->integer('event_id');
            $table->string('name');
            $table->text('description');
            $table->datetime('date_of_event');
            $table->timestamps();
            $table->text('location');
            $table->text('note');
            $table->boolean('is_Active');

        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::dropIfExists('events');
    }
}
8yparm6h

8yparm6h1#

Laravel自动提供时间戳管理,你只需要在schema create方法的末尾包含它就可以了。

$table->timestamps();

这将在表“created_at”和“updated_at”中给你给予两列。它们是不言自明的。当您创建或更新任何记录时,它们将被自动管理。
如果你想自己管理时间戳,

$table->datetime('creation_date');
$table->datetime('last_update');

在这种情况下,您必须在创建或更新记录时手动填充这些值。
希望这能澄清你的概念。

5n0oy7gb

5n0oy7gb2#

timestamps()创建两个DATETIME列来存储时间戳。创建的列的名称将是默认的(created_at和updated_at)。
如果你需要自定义时间戳列,你必须像samo已经提到的那样自己创建它们。

bis0qfac

bis0qfac3#

对于Laravel 8.x
迁移文件:

<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

class CreateDataTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('data', function (Blueprint $table) {
            $table->id();
            $table->string('name');
            $table->timestamps();
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::dropIfExists('data');
    }
}
?>

模型文件:

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;

class Data extends Model
{
    use HasFactory;

    protected $fillable = [
        'name',
        'created_at',
        'updated_at',
    ];
}
?>

插入数据:

use App\Models\Data;
 
$insertData= Data::create([
    'name' => 'Name Data Here',
    'created_at' => '2022-10-09 16:17:18', //date('Y-n-d G:i:s') or date('Y-n-d G:i:s','timestamphere')
    'created_at' => '2022-10-09 16:17:18',
]);

相关问题