GA黄金甲

laravel 更新后被软删除

laravel是一款盛行的php开发框架,普遍应用于web应用程序的开发中。它提供了许多利便的功效,例如orm、路由控制、模板引擎等,使得web应用程序的开发变得轻松愉快。其中,laravel的软删除功效是广受接待的功效之一。本文将先容laravel更新后软删除爆发的转变及其解决要领。

Laravel的软删除功效

在Laravel中,若是我们想要删除一个纪录,可以使用delete要领,也可以使用destroy要领。可是,若是我们希望该纪录被标记为已删除而不是完全删除,我们应该使用Laravel的软删除功效。

要使用软删除功效,我们需要向模子添加SoftDeletestrait,并在数据库中添加一个名为deleted_at的datetime类型的列。当使用delete或destroy要领从数据库中删除一个纪录时,该纪录将被标记为已删除,并将deleted_at字段设置为目今时间戳。标记为已删除的纪录不会在盘问中返回,但它们仍然保存于数据库中。

除了delete和destroy要领之外,Laravel还提供了许多其他的软删除要领,例如forceDelete和restore。forceDelete要领可以永世删除软删除的纪录,而restore要领可以将软删除的纪录恢复到数据库中。

Laravel更新软删除后的转变

当Laravel 7更新到Laravel 8时,软删除功效爆发了一些转变。在Laravel 8中,软删除行为的默认值从“保存”更改为“删除”。

换句话说,在Laravel 8中,当您挪用delete或destroy要领时,纪录将被永世删除,而不是像以前版本中那样被标记为已删除。这将导致您无法恢复已删除的纪录,并且若是您的应用程序依赖于软删除功效,则可能会泛起意外的过失。

解决要领

若是您的应用程序依赖于软删除功效,那么您必需在Laravel 8中接纳一些特另外办法来确保软删除功效按预期事情。

首先,您需要在模子中显式界说软删除行为。在您的模子中,您应该界说booted要领,并挪用static::deleted要领来界说模子的软删除行为,如下所示:

use IlluminateDatabaseEloquentSoftDeletes;

class MyModel extends Model
{
    use SoftDeletes;

    protected static function booted()
    {
        static::deleted(function ($model) {
            // Handle soft deletion
        });
    }
}

登录后复制

在上面的例子中,我们使用deleted要领来界说模子的软删除行为。当模子被软删除时,将挪用转达给deleted要领的闭包函数。

在这个函数中,您可以编写任何您希望在软删除时执行的代码。例如,在建设软删除纪录时,您可以在模子中设置其他属性,或者在第三方效劳中通知其他应用程序。

其次,您需要在您的应用程序中确保所有使用软删除的地方都已准确调解。例如,若是您在代码中使用了deleted_at字段举行盘问,请确保您的代码准确处置惩罚该字段的值。

最后,若是您之前使用的是delete或destroy要领,并且希望继续使用软删除功效,请修改您的代码,以便使用softDelete或softDeletes要领,并引用SoftDeletestrait,如下所示:

class MyController extends Controller
{
    public function delete($id)
    {
        $record = MyModel::find($id);
        $record->softDelete(); // 使用 softDelete 要领
        // ...
    }
}

登录后复制

在上面的例子中,我们使用了softDelete要领来软删除纪录。若是您要删除多条纪录,请使用softDeletes要领。

结论

软删除是Laravel中的一个很是利便的功效,但在Laravel 8中,其行为爆发了转变。为了确保软删除功效按预期事情,您需要在模子中显式界说软删除行为,并在您的应用程序中对使用软删除的地方举行适当的调解。

在更新Laravel版本之前,请确保您已经做好充分的准备,并在更新后检查软删除功效是否仍然按预期事情。

以上就是laravel 更新后被软删除的详细内容,更多请关注本网内其它相关文章!

免责说明:以上展示内容泉源于相助媒体、企业机构、网友提供或网络网络整理,版权争议与本站无关,文章涉及看法与看法不代表GA黄金甲滤油机网官方态度,请读者仅做参考。本文接待转载,转载请说明来由。若您以为本文侵占了您的版权信息,或您发明该内容有任何涉及有违公德、冒犯执法等违法信息,请您连忙联系GA黄金甲实时修正或删除。

相关新闻

联系GA黄金甲

18523999891

可微信在线咨询

事情时间:周一至周五,9:30-18:30,节沐日休息

QR code
【网站地图】【sitemap】