当前位置: 首页 > 知识库问答 >
问题:

在MySQL中更新记录时,Laravel的useCurrent()不起作用

东方河
2023-03-14

我最近在我的数据库中添加了一个新的迁移,它以最简单的形式执行如下操作

If(Schema::hasTable('some_table')){
    Schema::table('some_table', function (Blueprint $table) {
        $table->dateTime('last_updated')->nullable(false)->useCurrent()->change();
    });
}

根据SE上的回答,Laravel应该自动为我创建并更新last_record列,但我正在MySQL 5.7中对此进行测试。这对我来说绝对不是。我使用的是Laravel7.5,我的PHP版本是7.3。21

同时,手动将更新当前时间戳时的CURRENT\u TIMESTAMP添加到我的数据库也失败了。所以,这似乎是我的MySQL数据库而不是Laravel本身的问题。因此,我有两个问题:

当insert或update没有传递任何内容时,是否可以使用Laravel/PHP始终向字段添加默认值?

编辑:@lagbox询问我如何保存/更新数据库中的记录。这里是如何

$record= TableModel::where('blah', $blah)
                ->first();

if($record){
    $record->update([
         'blah1' => $blah1,
         'blah2' => $blah2
    ]);
}

共有1个答案

彭海阳
2023-03-14

您可以覆盖Eloquent将自动处理的Model上用于created_atupdated_at时间戳的字段:

const UPDATED_AT = 'last_updated';

您还可以通过将const设置为null来禁用特定的时间戳:

const CREATED_AT = null;

Laravel 7. x文档-雄辩-模型约定-时间戳UPDATED_ATCREATED_AT

 类似资料:
  • 我有一个由3列组成的用户设置表(或见下图):,,。 然后我有两个函数,一个保存时区,一个保存时间格式。 当我第一次运行函数时(每个函数都是通过ajax调用独立运行的),我得到了正确的结果: 然后,当我尝试更新

  • 我使用Spring Boot V1.5.3.Release和MYSQL作为创建Restful服务的后端。 我有一个表,希望它的主键是uuid类型,因为我认为该表中会有很多记录。 当我尝试用将主键从切换到时,它正按预期工作。 我是否以错误的方式定义了UUID,或者如果我们使用UUID生成,这样的更新将不起作用?

  • 表模式 用户模型 下面是我在Laravel 5中的代码 错误消息 SQLSTATE[42S22]:未找到列:“where子句”中的1054未知列“user.id”(SQL:select*fromwhere=1限制1)

  • 如果值不改变,我想忽略段塞。我目前得到这个错误,每当我更新的形式。 这是我的验证请求。 命名空间App\Http\Requests\Admin; 使用Illumb\Foundation\Http\FormRequest; 类ProductInsertFormRequest扩展FormRequest{/***确定用户是否有权发出此请求。**@return bool*/public function

  • 问题内容: 我是MYSQL的新手,无法解决甚至在该论坛上回答太多,也无法识别此语句中的错误。我正在使用MYSQL数据库。 我有2个表:Ratemaster和Rates,客户可以在其中拥有1个具有不同费率的产品。因此,有一个重复的客户和产品字段,只有费率字段更改。现在,Table Ratemaster具有所有字段:id,客户代码,产品,费率,用户,而Table Rate仅具有:id,客户代码,费率,

  • 我有一个问题,在laravel的新路线不工作,网址显示正确的路线,但几乎好像它没有得到我的路线Web文件只是返回页面没有找到每次。 我尝试过:使用命名路由,移动功能到不同的控制器,清除路由缓存,清除应用缓存,自卸自动加载,确保AllowOveride设置为所有, 网状物php: 控制器: 查看文件名:coursestatistics。刀身php文件结构视图/课程统计 链接至第页: 有人能告诉我是什