首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Laravel ``delete()‘影响到其他时间戳列

Laravel ``delete()‘影响到其他时间戳列
EN

Stack Overflow用户
提问于 2017-08-09 10:26:57
回答 1查看 914关注 0票数 2

我正在使用Laravel软删除,以便“删除”一个记录。但是正在发生一些奇怪的事情,用来软删除记录的delete()命令显然影响了我表中的其他时间戳行,除非我遗漏了一些关键的东西。

My Model (只包含相关部分,名称空间都已正确包含):

代码语言:javascript
运行
复制
use SoftDeletes;
protected $fillable = [ 'card_id', 'expiry_date' ]; // where expiry_date is the timestamp row being affected.
protected $hidden = ['created_at', 'updated_at', 'deleted_at'];

我的控制器

代码语言:javascript
运行
复制
public function destroy(IdCardFormRequest $request, $id)
{
    $idCard = IdCard::find($id);
    if(isset($idCard )){

        $operationStatus = $idCard ->delete();

        if($operationStatus) {
            $request->session()->flash('status', 'success');
            $request->session()->flash('message', 'Id card deleted successfully');
            return redirect()->route('admin.id-card.index');
        }
    }
}

问题

当我使用适当的路由启动删除过程时,MySql数据行将被正确地软删除,而另一个基于时间戳的行(即expiry_date )将被更新为当前时间戳。我已经阅读了与Laravel中的软删除有关的全部文档,它没有提到其他时间戳列将受到影响。

我读过的文件

编辑:

我用dateTime()而不是timestamp()解决了这个问题。我仍然不确定这是否是正确的解决办法

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-09 11:53:43

根据您所使用的数据库,datetime和时间戳列类型可能会执行不同的操作。

例如,在MariaDB/MySQL中,日期时间只是一个列类型,它以特定的格式保存日期和时间。

时间戳列类型也保存日期和时间,但除非显式重写,否则将在添加/更新记录时自动更新。

来自MariaDB文档:

时间戳字段通常用于定义在何时添加或更新行,默认情况下,在插入或更新记录时将自动分配当前日期时间。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45588066

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档