阅读(3423)
赞(12)
Laravel 8 软删除
2021-07-09 14:25:14 更新
如果你索引的模型是 [soft Delete](/docs/laravel / 8.x/eloquent#soft-deleting),并且您需要搜索已删除的模型,请设置 config /scout.php 中的 soft_delete 选项。 配置文件为 “ true”:
'soft_delete' => true,
当此配置选项为 “true” 时,Scout 将不会从搜索索引中删除软删除的模型。 相反,它将在索引记录上设置一个隐藏的__soft_deleted
属性。 然后,您可以在搜索时使用 withTrashed
或 onlyTrashed
方法来检索软删除的记录:
// 检索结果时包括删除记录...
$orders = App\Models\Order::search('Star Trek')->withTrashed()->get();
// 检索结果时仅包括已删除记录...
$orders = App\Models\Order::search('Star Trek')->onlyTrashed()->get();
技巧:当使用 “forceDelete” 软删除的模型被永久删除时,Scout 会自动将其从搜索索引中删除。