我正在将我们的一个web应用程序从CodeIgniter转换为Laravel。然而,此时我们不想将updated_at / created_at字段添加到我们所有的表中,因为我们已经有一个日志类,它已经为我们更深入地完成了所有这些工作。
我知道我可以设置$timestamps = false;:
Vendor\laravel\framework\src\illuminate\Datebase\Eloquent\Model.php
然而,我宁愿不改变Laravel的核心文件,或者让我的每个模型都在顶部。有没有办法在其他地方禁用所有模型?
简单地把这一行放在你的模型中:
公共$timestamps = false;
就是这样!
例子:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Post extends Model
{
public $timestamps = false;
//
}
禁用一个操作的时间戳(例如在控制器中):
$post->content = 'Your content';
$post->timestamps = false; // Will not modify the timestamps on save
$post->save();
要禁用所有模型的时间戳,创建一个新的BaseModel文件:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class BaseModel extends Model
{
public $timestamps = false;
//
}
然后用BaseModel扩展你的每个模型,如下所示:
<?php
namespace App;
class Post extends BaseModel
{
//
}