Используя Мягкое удаление , вы помечаете элемент так, чтобы он больше не отображался
в приложении.
Laravel изначально поддерживает мягкое удаление, вам просто нужно включить его на
конкретная модель, где вам это нужно.
В Laravel 5 или новее , если у вас есть, например, модель Книга , для ее включения необходимо:
1. Создать новую миграцию
$ php artisan make:migration add_soft_delete_to_books --table=books
2. Измените миграцию, добавив столбец «Удален_кат» . Конструктор схемы Laravel содержит вспомогательный метод softDeletes () для создания этого столбца.
public function up()
{
Schema::table('books', function(Blueprint $table){
$table->softDeletes();
});
}
public function down()
{
Schema::table('books', function(Blueprint $table){
$table->dropColumn('deleted_at');
});
}
3) Запустить миграцию
$ php artisan migrate
4) Откройте модель Book и добавьте черту SoftDelete
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
class Book extends Model {
use SoftDeletes;
protected $dates = ['deleted_at'];
}
5) При следующем удалении записи, связанной с этой моделью, в столбце dele_at будет установлена текущая отметка времени.
Любая запись, имеющая установленную метку времени Удалено_, не будет включена ни в один из найденных результатов.
6) Если вам нужно включить мягко удаленную запись в любой красноречивый результат запроса, вы можете использовать метод withTrashed:
$Books = Book::withTrashed()->get();
Здесь вы найдете официальную документацию :