【问题标题】:No Results, if $softDelete is activated没有结果,如果 $softDelete 被激活
【发布时间】:2013-09-04 10:18:12
【问题描述】:

我确实有以下课程:

class BillProduct extends Eloquent {
  protected $softDelete = true;
  protected $guarded = array();
  public static $rules = array();
  protected $table = 't_billsproducts';
}

如果我尝试使用

$record = BillProduct::find($idProduct)

$record 将为空。

如果我从上面的类中删除protected $softDelete$record 将包含数据...

数据库中没有软删除的列 - 我想知道这里发生了什么...

有什么想法吗? 谢谢

德克

【问题讨论】:

  • 检查原始查询,afaik 它类似于'where deleted_at is null,但表中的该列不存在,因此没有结果。
  • 谢谢,NULL 是解决方案 - 我在所有“删除时间”中都有“0000-00-00 00:00:00”

标签: php laravel eloquent


【解决方案1】:

当您在模型中启用软删除时,您需要向表中添加一个名为 deleted_at 的列。如果您正在使用迁移,您可以通过将 $table->softDeletes() 添加到您的架构来实现。

如果您想检索所有记录(包括已删除的记录),您可以这样做:

$records = Model::withTrashed()->get();

更多信息: http://laravel.com/docs/eloquent#soft-deleting

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-07-18
    • 1970-01-01
    • 1970-01-01
    • 2011-05-22
    • 2015-12-17
    • 2014-06-19
    • 2019-11-02
    相关资源
    最近更新 更多