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

Php Laravel-存档数据,删除并插入到另一个表中,php,mysql,laravel,laravel-5,Php,Mysql,Laravel,Laravel 5,当我单击“删除”按钮时,我想删除数据并将其插入另一个表中,该表是归档文件。我如何执行该操作 例如,我的另一个新表模型名为Archive和新表名为Archive 以下是我的公共职能: public function destroy($id) { $client = Client::find($id); $client->delete(); } $client = new Client; $client->client_code = $request->inpu

当我单击“删除”按钮时,我想删除数据并将其插入另一个表中,该表是归档文件。我如何执行该操作

例如,我的另一个新表模型名为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');
我的店铺公共功能:

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()时模型将仅标记为已删除,不会显示在查询中
除非在查询中使用
with trashed()
。如果您想要它回来,您可以运行
$client->restore()


或者你要求的解决方案

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

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

    $client->delete();

}

不确定如果已删除存档数据,您将如何将其连接到客户端,可能需要一个用户id,以便您知道谁拥有什么。尽管如此,还是建议使用softdeletes。

umm。。我想显示我的档案也将在另一个刀片文件中显示我的档案?请看,我必须启用和禁用按钮。。禁用按钮存档我的数据,但不删除数据并将其存储到archive.blade.php。。“启用”按钮将我的存档文件返回给client.blade.phpIf如果您只想删除和还原,那么您不需要
archive
表,您只需
SoftDelete
即可,当用户启用“反向还原”后,您不需要来回复制,您可以使用
client::withTrashed()->find($client\u id)还原删除的数据->恢复()是的,这很有效,如果您使用“垃圾”或“仅垃圾”,则可以在单独的刀片中显示它们。@Marcus我已将文档更改为红色。所以在soft delete中,您不需要为存档创建另一个表,对吗?只需使用软删除,您的数据将保留在您的数据库中,即使您在网站上删除了它,对吗?是的,这是正确的。仅当您使用forceDelete()时;数据将被删除。