只需一个发布请求即可在两个不同的类中插入操作

时间:2019-12-28 13:11:23

标签: laravel design-patterns

我想同时在其类中插入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());
    }
}

PostRepositoryInterface

interface PostRepositoryInterface
{
    public function all();

    public function get($id);

    public function create($param);

    public function update($id, $param);

    public function delete($id);
}

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

1 个答案:

答案 0 :(得分:0)

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

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

在这里您可以查看官方的model events documentation