为什么删除的数据仍会显示在界面中?

时间:2017-01-22 08:14:12

标签: php laravel caching laravel-5.3

看这里:

enter image description here

当我点击按钮删除时,删除的数据仍会出现在界面中。

我查看数据库中的表,数据被删除。

如果我在git bash上运行这个:php artisan cache:clear,数据可能会丢失。

如果不运行命令,数据可以被删除吗?

更新

我的控制器是这样的:

public function deleteAccount(Request $request)
{
    $id_account = $request->input('id_account');
    try{
        if($this->user_service->deleteAccount($id_account)) {
            $status='success';
        }else {
            $status = 'failed';
        }
        return redirect('member/profile/setting/account')->with('status',$status);
    }catch (\Exception $exception){
        return $this->respondInternalError();
    }
}

我的服务是这样的:

public function deleteAccount($id_account)
{
    return $this->user_bank_repository->delete($id_account);
}

我的存储库是这样的:

<?php
namespace App\Repositories;
use App\Models\UsersBank;
use Illuminate\Contracts\Container\Container;
use Rinvex\Repository\Repositories\EloquentRepository;
class UserBankRepository extends EloquentRepository
{
    public function __construct(Container $container)
    {

        $this->setContainer($container)
             ->setModel(UsersBank::class)
             ->setRepositoryId('rinvex.repository.uniqueid');
    }
    public function delete($id)
    {
        $data = self::find($id)->delete();
        return $data;
    } 
}

1 个答案:

答案 0 :(得分:0)

我看到你也在使用rinvex存储库。我没有看到有关获取数据的代码。我假设您从存储库缓存中获取数据。在您的存储库中,您的删除功能。

public function delete($id){
    return $this->delete($id);
}

这应该清除存储库缓存。 如果您想手动清除存储库的缓存,请在存储库方法中尝试以下操作。

$this->forgetCache();

$this->getContainer('events')->fire($this->getRepositoryId() . '.entity.updated', [$this, $modelInstance]);

实际上,forgetCache()方法应该这样做,在我对我的表进行大量更新后,我在我的存储库中使用它。