一个菜鸟问题:我在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');
}
}
3条答案
按热度按时间8yparm6h1#
Laravel自动提供时间戳管理,你只需要在schema create方法的末尾包含它就可以了。
这将在表“created_at”和“updated_at”中给你给予两列。它们是不言自明的。当您创建或更新任何记录时,它们将被自动管理。
如果你想自己管理时间戳,
在这种情况下,您必须在创建或更新记录时手动填充这些值。
希望这能澄清你的概念。
5n0oy7gb2#
timestamps()创建两个DATETIME列来存储时间戳。创建的列的名称将是默认的(created_at和updated_at)。
如果你需要自定义时间戳列,你必须像samo已经提到的那样自己创建它们。
bis0qfac3#
对于Laravel 8.x
迁移文件:
模型文件:
插入数据: