laravel orm更新文档[重复]

Posted

技术标签:

【中文标题】laravel orm更新文档[重复]【英文标题】:laravel orm update document [duplicate] 【发布时间】:2020-03-16 04:07:44 【问题描述】:

我一直在尝试使用 laravel ORM 更新文档,但收到异常声明 unknown column updated_at

该列不在数据库表中,我在查询中也没有提到。

$foo = ProductMatchUnmatchHistory::where('product_match_unmatches_id', $pmu->id)
                    ->update(['is_latest'=>0]);

ProductMatchUnmatchHistory模特:

protected $fillable = [
    'product_match_unmatches_id',
    'human_verdict',
    'ai_result',
    'updated_on',
    'updated_by',
    'is_latest'
];

该表具有与$fillable 数组中相同的列,并具有附加的id 主键。

这是异常消息:

SQLSTATE[42S22]: Column not found: 1054 Unknown column 'updated_at' in 'field list' (SQL: update `product_match_unmatch_histories` set `is_latest` = 0, `updated_at` = 2019-11-20 12:20:02 where `product_match_unmatches_id` = 1759)

我不知道updated_at 列是从哪里添加到查询中的。

【问题讨论】:

【参考方案1】:

请更改

你必须定义表名

protected $table = 'your table name';

protected $fillable = [
    'product_match_unmatches_id',
    'human_verdict',
    'ai_result',
    'updated_on',
    'updated_by',
    'is_latest'
];
$timestamps = false;

【讨论】:

$timestamps=false 为我工作。 好的,请选择这个答案作为有帮助的,谢谢。@Azima【参考方案2】:

首先请检查您的表updated_at 是否存在?因为sql错误说找不到列

【讨论】:

no.. 没有 updated_at。这是必填字段吗?【参考方案3】:

如果您不想使用 Laravel 的 Eloquent 模型中的 updated_atcreated_at 字段,请编辑您的 ProductMatchUnmatchHistory.php 模型并设置 $timestamps = false

class ProductMatchUnmatchHistory extends Model

    //....
    $timestamps = false;
    //....

附加信息

Laravel 模型会在创建条目时自动设置 created_at 字段,并在您对行进行任何更改时更新 updated_at 列。这是通过模型上的$timestamps 字段处理的。如果设置为默认的true,laravel 会假设你的模型有created_atupdated_at 字段。

在大多数情况下,这很有帮助。您只需添加$table->timestamps();,即可在迁移中轻松添加这些字段。

见https://laravel.com/docs/5.8/eloquent#eloquent-model-conventions (在时间戳下)

【讨论】:

【参考方案4】:

@Azima 您应该在表格中添加该列,否则您将收到此错误,因为 eloquent 更新该列并且它不存在于表格中,或者您可以在您的模型中 $timestamps=false

【讨论】:

以上是关于laravel orm更新文档[重复]的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 中自动删除相关行(Eloquent ORM)

是否可以根据 Laravel 的 ORM 中的多个列删除重复项?

PHP 独立使用 laravel ORM 数据库组件,PHP ORM数据库模型组件

PHP 独立使用 laravel ORM 数据库组件,PHP ORM数据库模型组件

我想自学laraver,请诸位前辈给一些建议,谢谢

Laravel 4:如何使用 Eloquent ORM“排序”[重复]