【问题标题】:Laravel Eloquent - Soft deleting is not workingLaravel Eloquent - 软删除不起作用
【发布时间】:2014-05-20 21:03:02
【问题描述】:

我已将$table->softDeletes() 添加到我的迁移文件中,并将protected $softDelete = true; 添加到我的模型中,并且我的表中确实有deleted_at。但是每当我打电话给delete() 时,整行都会被删除。这是我如何调用我的删除:

Schedule::whereId($id)->whereClientId($client_id)->delete();

我做错了什么?

【问题讨论】:

  • 我认为应该可以。您使用的是 Laravel 4 还是更高版本?确保protected $softDelete = true; 就位。如果你运行dd(new Schedule());,你应该可以看到"softDelete":protected]=> bool(true)
  • 是的,确实如此 protected 'softDelete' => boolean true 但我向上帝发誓它正在被删除!我正在使用 Laravel 4.2
  • 您确定它已从数据库中删除?
  • 是的,我正在查看 db,并且该行已完全删除。
  • 请在查询后添加var_dump(DB::getQueryLog());并分享结果

标签: laravel eloquent


【解决方案1】:

万一有人碰到这个问题。你仍然可以在 Laravel 5 中使用 SoftDeletes。只需使用 softdeletes trait。

namespace App;

use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes; //<--- use the softdelete traits

class YourModel extends Model
{
    use SoftDeletes; //<--- use the softdelete traits

    protected $dates = ['deleted_at']; //<--- new field to be added in your table

    protected $fillable = [

    ];
}

您可以查看laravel docsThis great tutorial on how to softdelete

【讨论】:

    猜你喜欢
    • 2014-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-16
    • 2016-07-24
    • 1970-01-01
    相关资源
    最近更新 更多