0

我想同时在他们的类中插入mysql和redis数据库。我尝试使用存储库模式,但是 laravel 的 bind 方法只实现了一个类的接口

控制器如下:

class PostController extends Controller
{
    protected $post;

    public function __construct(PostRepositoryInterface $post)
    {
        $this->post = $post;
    }

    public function store(StorePostRequest $request, PostRepositoryInterface $post)
    {
        return $post->create($request->validated());
    }
}

PostRepository接口

interface PostRepositoryInterface
{
    public function all();

    public function get($id);

    public function create($param);

    public function update($id, $param);

    public function delete($id);
}

我想问的问题是,如何使用这个接口在多个类中执行插入操作?

4

1 回答 1

0

我认为最好的代码方式是在您的资源上使用模型观察器并监听 CRUD 事件。

观察者类将与第二个存储库交互以复制第二个数据源中的更改。

在这里你可以看看官方的模型事件文档

于 2019-12-28T17:35:35.840 回答