未找到列:1054 'where clause' 中的未知列 'orders.deleted_at'

Column not found: 1054 Unknown column 'orders.deleted_at' in 'where clause'

在我的 table 中没有 deleted_at 列。

但在 laravel 模型中 return deleted_at 在 where 条件下为 null。

下面是我的代码

public function load($id) {

        return $this
            ->select(sprintf('%s.*', $this->getTable()))
            ->where(sprintf('%s.id', $this->getTable(), $this->getKeyName()), '=', $id)
            ->first();
    }

有人可以帮助我吗?如何解决这个问题?

您必须从您的模型文件中删除特征 use SoftDeletes;

然后使用下面的代码:

 return $this->where(sprintf('%s.id', $this->getTable(), $this->getKeyName()), '=', $id)
        ->pluck('id');'

由于您使用的是SoftDeletes,因此它必须保存删除记录的日期和时间。

只需将其添加到 table 迁移中的 up 函数中即可:

$table->softDeletes($column = 'deleted_at', $precision = 0);

有关 SoftDeletes 的更多信息:https://laravel.com/docs/8.x/eloquent#soft-deleting