是否有从存储库设计模式中恢复软删除记录的功能?
Is there any function that restore soft deleted record from repository design pattern?
我在我的代码中使用了存储库设计模式,现在,我想恢复我的软删除记录。但我找不到解决此问题的任何解决方案使用存储库设计 pattern.I 使用基于 laravel 的 apiato http://apiato.io/ 框架。我想恢复我在 Task 上的记录。
这是我的模特class
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);
}
}
}
Eloquent 有一种使用 restore()
函数恢复软删除条目的方法。这里是 documentation link 了解更多信息。
如果要恢复软删除记录,可以使用restore() 属性。
public function restore($id)
{
$this->repository->find($id)->restore();
}
我找到了解决方案。在 apiato 存储库 class 中有方法名称 makeModel()
当您调用此方法时,所有内容都会更改为 eloquent 函数。之后你可以使用 withTrash
方法在软删除记录之间搜索并找到你想要的特定记录,然后调用 restore()
方法。
$this->repository->makeModel()->withTrash()->where('id',$property_id')->first()->restore();
从任务中恢复软删除记录
$this->repository::withTrashed()->findorfail($id)->restore();
我在我的代码中使用了存储库设计模式,现在,我想恢复我的软删除记录。但我找不到解决此问题的任何解决方案使用存储库设计 pattern.I 使用基于 laravel 的 apiato http://apiato.io/ 框架。我想恢复我在 Task 上的记录。
这是我的模特class
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);
}
}
}
Eloquent 有一种使用 restore()
函数恢复软删除条目的方法。这里是 documentation link 了解更多信息。
如果要恢复软删除记录,可以使用restore() 属性。
public function restore($id)
{
$this->repository->find($id)->restore();
}
我找到了解决方案。在 apiato 存储库 class 中有方法名称 makeModel()
当您调用此方法时,所有内容都会更改为 eloquent 函数。之后你可以使用 withTrash
方法在软删除记录之间搜索并找到你想要的特定记录,然后调用 restore()
方法。
$this->repository->makeModel()->withTrash()->where('id',$property_id')->first()->restore();
从任务中恢复软删除记录
$this->repository::withTrashed()->findorfail($id)->restore();