laravel7 修改或者關閉 update_at 和 created_at

laravel 這個框架有時候管的太寬了,當你執行 $this->save()的時候,會自動填充update_at 和  created_at ,往往數據表並沒有這兩個字段或者根本不是這麼命名的,這個時候需要更改類常量

 定位到     Illuminate\Database\Eloquent\Model;  進去你會發現,有兩個常量

    const CREATED_AT = 'created_at';

    const UPDATED_AT = 'updated_at';

我們最好不要去基層類裏面修改框架源碼,不是說不行,只是在多人合作項目裏你會影響到別人的代碼。

直接在類裏面“修改”常量就是了。

(爲啥常量能修改?額,常量確實不能修改,但是在類裏面的類常量,是可以繼承的。如果子類重新定義這個常量,那將不會繼承父類的常量。所謂的修改其實是重新定義了一個。)

namespace App;

use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Facades\Request;

class User extends Model
{
    const UPDATED_AT = 'UpdateTime';
    const CREATED_AT = 'AddTime';
    public function creatuser(){
        $this->username = Request::get('username');
        $this->password =Request::get('password');
        $this->save();
    }
}

如何關閉?直接等於 null就行了

const UPDATED_AT = null;
const CREATED_AT = null;

也可以在類裏面直接更改一個變量

 public $timestamps = FALSE;

如果希望自動填充 update_at 但是又希望填充的是個時間戳

protected $dateFormat = 'U';

所以,laravel給我的感覺就是不夠靈活,很不爽

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章