Laravel - Архивирование данных, удаление и вставка в другую таблицу - PullRequest
0 голосов
/ 30 ноября 2018

Когда я нажимаю кнопку «Удалить», я хочу удалить данные и вставить их в другую таблицу, которая является архивом. Как я могу это сделать?

Например, моя новая другая табличная модель с именем Архив и новая таблица с именем архив

Вот моя публичная функция для уничтожения:

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');

1 Ответ

0 голосов
/ 30 ноября 2018

Так почему бы вам просто не удалить их и не использовать их в качестве архива.Будет проще выполнять такие операции, как восстановление, получение и т. Д.

Для мягкого удаления модели требуется

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, чтобы вы знали, кто что имеет.Тем не менее, по-прежнему рекомендуем использовать программные средства для этого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...