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

问题描述 投票:2回答:1

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

例如,我的另一个名为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');
php mysql laravel laravel-5
1个回答
0
投票

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

软删除模型需求

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。

© www.soinside.com 2019 - 2024. All rights reserved.