laravel7 修改或者关闭 update_at 和 created_at

10/23 17:50
阅读数 69

laravel 这个框架有时候管的太宽了,当你执行 $this->save()的时候,会自动填充update_at 和  created_at ,往往数据表并没有这两个字段或者根本不是这么命名的,这个时候需要更改类常量

 定位到     Illuminate\Database\Eloquent\Model;  进去你会发现,有两个常量

 
  1.  
    const CREATED_AT = 'created_at';
  2.  
     
  3.  
    const UPDATED_AT = 'updated_at';
  4.  
     

我们最好不要去基层类里面修改框架源码,不是说不行,只是在多人合作项目里你会影响到别人的代码。

直接在类里面“修改”常量就是了。

(为啥常量能修改?额,常量确实不能修改,但是在类里面的类常量,是可以继承的。如果子类重新定义这个常量,那将不会继承父类的常量。所谓的修改其实是重新定义了一个。)

 
  1.  
    namespace App;
  2.  
     
  3.  
    use Illuminate\Database\Eloquent\Model;
  4.  
    use Illuminate\Support\Facades\Request;
  5.  
     
  6.  
    class User extends Model
  7.  
    {
  8.  
    const UPDATED_AT = 'UpdateTime';
  9.  
    const CREATED_AT = 'AddTime';
  10.  
    public function creatuser(){
  11.  
    $this->username = Request::get('username');
  12.  
    $this->password =Request::get('password');
  13.  
    $this->save();
  14.  
    }
  15.  
    }

如何关闭?直接等于 null就行了

 
  1.  
    const UPDATED_AT = null;
  2.  
    const CREATED_AT = null;

也可以在类里面直接更改一个变量

 public $timestamps = FALSE;

如果希望自动填充 update_at 但是又希望填充的是个时间戳

protected $dateFormat = 'U';

所以,laravel给我的感觉就是不够灵活,很不爽

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部