Есть ли функция, которая восстанавливает мягко удаленную запись из шаблона проектирования хранилища? - PullRequest
0 голосов
/ 24 сентября 2019

Я использую шаблон дизайна репозитория в своем коде, и теперь я хочу восстановить мои мягкие удаленные записи.но я не смог найти решения этой проблемы, используя шаблон проектирования хранилища. Я использую Apiato http://apiato.io/ фреймворк, основанный на laravel.Я хочу восстановить свою запись в задании.

Это мой класс Model

class Property extends Model
{
    use SoftDeletes;
}

И это мои коды репозитория для удаления.

class DeletePropertyTask extends Task
{

    protected $repository;

    public function __construct(PropertyRepository $repository)
    {
        $this->repository = $repository;
    }

    public function run($id)
    {
        try {
            $result = $this->repository->delete($id);
            return $result;
        }
        catch (Exception $e) {
            throw new DeleteResourceFailedException(null, null, null, null, $e);
        }
    }
}

Ответы [ 4 ]

0 голосов
/ 24 сентября 2019

Для восстановления записи программного удаления из задачи

$this->repository::withTrashed()->findorfail($id)->restore();
0 голосов
/ 24 сентября 2019

Если вы хотите восстановить запись мягкого удаления, вы можете использовать свойство restore ().

public function restore($id)
{
    $this->repository->find($id)->restore();
}

дополнительная информация

0 голосов
/ 24 сентября 2019

Я нашел решение.В классе репозитория apiato есть имя метода makeModel(), когда вы вызываете этот метод, все вещи превращаются в красноречивые функции.после этого вы можете использовать метод withTrash для поиска среди мягко удаленных записей и найти нужную запись после этого вызова метода restore().

$this->repository->makeModel()->withTrash()->where('id',$property_id')->first()->restore();
0 голосов
/ 24 сентября 2019

Eloquent имеет способ восстановления мягко удаленных записей с помощью функции restore().Вот ссылка документация для получения дополнительной информации.

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