不使用默认的时间created_at,updated_at
通过使用Laravel数据迁移创建的表,如果没有把语句 $table->timestamps()
去掉,则会在数据库中增加两个列,一个是created_at
,一个是updated_at
,这两个字段一个会保存记录创建的时间,一个会自动保存,你更新记录的时间。但是有时候我们并不需要使用这两个字段。只要把 $table->timestamps()
去掉就可以了,但是如果你没在模型里面设置的话,添加保存数据的时候,orm会帮你添加created_at
,跟updated_at
,这机会报错,找不到列了。我们只需要在模型里面添加一个属性即可。
首先,建模型
php artisan make:model Article
建完模型,默认会在app目录下生成Article.php文件,
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Article extends Model
{
protected $timestamps = false; //添加这句,保存的时候不会添加created_at,跟updated_at了
}
不使用默认的表名规则
Laravel 创建的模型名,默认对应的是该文件名的复数形式的表名,如上面的Article对应的表名默认是Articles,数据库建表,表名取名规则是需要语义话的,有些场景并不需要复数,我们也可以通过修改模型,来达到改变默认规则表名的需求,还是上面的例子,例如
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Article extends Model
{
protected $table = 'article'; // 如果配置文件有前缀(例如时:v_),这边表示v_article,没有前缀就是article
}