Php Laravel 5.3-调用未定义的方法Illumb\Database\Query\Builder::withTrashed()
我使用的Laravel版本是5.3。 我已经在使用trait SoftDeletes了,它也被正确导入了Php Laravel 5.3-调用未定义的方法Illumb\Database\Query\Builder::withTrashed(),php,laravel-5,eloquent,laravel-5.3,soft-delete,Php,Laravel 5,Eloquent,Laravel 5.3,Soft Delete,我使用的Laravel版本是5.3。 我已经在使用trait SoftDeletes了,它也被正确导入了 namespace App\Models; use Illuminate\Database\Eloquent\SoftDeletes; class Reference extends Model { use SoftDeletes; protected $fillable = [ 'client_id', 'email' ]; } 当我使用onlyTr
namespace App\Models;
use Illuminate\Database\Eloquent\SoftDeletes;
class Reference extends Model {
use SoftDeletes;
protected $fillable = [
'client_id',
'email'
];
}
当我使用onlyTrashed()或withTrashed()方法时,会出现错误
$reference = Reference::withTrashed()->get();
或
错误:
BadMethodCallException in Builder.php line 2450:
Call to undefined method Illuminate\Database\Query\Builder::withTrashed()
一些类似的方法正在发挥作用:
Reference::find(1)->delete();
Reference::find(1)->restore();
Reference::find(1)->trashed();
有什么问题吗?当表中的
列中没有已删除时,会发生这种情况。您是否在迁移过程中创建了具有如下列的引用表
$table->softDeletes()
即使您在模型上添加了Eloquent\Softdeletes,但如果实际表没有该列,它仍然会失败,并显示您收到的错误消息 我已经用$table->softDeletes()创建了迁移。其他方法正在发挥作用。方法delete()将deleted_at列更新为时间戳。这很奇怪。当我运行Reference::all()时,返回所有行,直到行被删除(时间戳位于deleted_at);
Reference::find(1)->delete();
Reference::find(1)->restore();
Reference::find(1)->trashed();