初始化数据库:Laravel的存储库模式中的事务

初始化数据库:Laravel的存储库模式中的事务,laravel,repository-pattern,Laravel,Repository Pattern,是否有初始化DB:transaction-to-repository模式的方法。据我所知,我找不到任何可能的方法来初始化存储库中的方法。请帮助解决此问题。过程相同。为了演示的目的,让我分享代码。你可以这样试试 $this->model->title = $data['title_english']; $this->model->slug = $data['slug']; $product = $this->mo

是否有初始化DB:transaction-to-repository模式的方法。据我所知,我找不到任何可能的方法来初始化存储库中的方法。请帮助解决此问题。

过程相同。为了演示的目的,让我分享代码。你可以这样试试

      $this->model->title = $data['title_english'];        
      $this->model->slug = $data['slug'];

       $product = $this->model;

        try{
            DB::transaction(function() use ($product, $data) {
                $product->save();

                if(!empty($data['category'])){
                    foreach ($data['category'] as $category){
                        $product->categories()->attach($category);
                    }
                    unset($category);
                }
            });

            DB::commit();
        }catch(\Exception $e){
            DB::rollback();
        }

你好,阿卜杜拉·沙基布,谢谢你的回复。实际上,我的方法如下所示,并希望使用DB:transaction。公共函数create(array$attributes){return$this->getModel()->create($attributes);}应该可以工作。试试这个。我只共享了我的存储库代码。就我而言,我使用了这个工作流控制器->服务->存储库->执行一些操作,使用了
DB::transaction
,DB::commit()和
DB::rollback()
肯定是完全冗余的?除非这些是某种嵌套事务?