Laravel - 存档数据,删除并插入另一个表

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Laravel - 存档数据,删除并插入另一个表相关的知识,希望对你有一定的参考价值。

当我单击按钮删除时,我想删除数据并将其插入到另一个表中,该表是如何进行存档的?

例如,我的另一个名为Archive的表模型和名为archive的新表

这是我的破坏公共功能:

public function destroy($id)
{
    $client = Client::find($id);
    $client->delete();

}

我的商店公共职能:

$client = new Client;
$client->client_code = $request->input('client_code');
$client->client_name = $request->input('client_name');
答案

那你为什么不软删除它们并将它用作你的档案。执行诸如恢复,获取等操作会更容易。

软删除模型需求

use SoftDeletes;

并在您的迁移表中

$table->softDeletes();

然后,当您运行$client->delete();时,模型将仅被标记为已删除,并且除非您在查询中使用withTrashed(),否则不会显示在查询中。如果你想要它回来你运行$client->restore();

https://laravel.com/docs/5.7/eloquent#soft-deleting


或者你要求的解决方案

public function destroy($id)
{
    $client = Client::find($id);

    Archive::create([
      'client_code' => $client->client_code,
      'client_name' => $client->client_name
    ])

    $client->delete();

}

不确定如果将存档数据连接到客户端,如果它已被删除,可能有一个user_id,所以你知道谁有什么。尽管如此仍然建议使用softdeletes。

以上是关于Laravel - 存档数据,删除并插入另一个表的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 将数据从一个表移动到另一个表并删除数据来自的列?

在数据透视表 laravel 中删除行和插入行

如何获取最后插入的自动递增 id 并将其插入 laravel 中的另一个表中?

SQL 存档脚本

从一个表中删除记录并插入到另一个表中

Laravel错误将数据从另一个表插入到表中