CI 架構 事務的使用問題

來源:互聯網
上載者:User
情況是這樣:

我需要先往Post 表中插入文章的基本資料,成功後返回 post_id。然後需要做一些資料處理,再用 post_id 和對應的資料插入到 Postmeta 表。 但時候在資料處理的過程中,有時候會失敗。導致 Post 的資料插入成功了,Postmeta 表的資料插入失敗。 這就是一次失敗的插入。會產生很多冗餘的 Post 資料。

我希望的是 postmeta 資料插入失敗,前面的 post 資料也應該『抹除』,就像事務的回退。

事務是在 CI 的 model 中運行,但是據我瞭解到,model 主要是用來資料的增刪改查。資料處理(邏輯處理)主要都在 controller中進行。

所以我不知道,我這個情況,到底應該如何處理?

謝謝大家。

回複內容:

情況是這樣:

我需要先往Post 表中插入文章的基本資料,成功後返回 post_id。然後需要做一些資料處理,再用 post_id 和對應的資料插入到 Postmeta 表。 但時候在資料處理的過程中,有時候會失敗。導致 Post 的資料插入成功了,Postmeta 表的資料插入失敗。 這就是一次失敗的插入。會產生很多冗餘的 Post 資料。

我希望的是 postmeta 資料插入失敗,前面的 post 資料也應該『抹除』,就像事務的回退。

事務是在 CI 的 model 中運行,但是據我瞭解到,model 主要是用來資料的增刪改查。資料處理(邏輯處理)主要都在 controller中進行。

所以我不知道,我這個情況,到底應該如何處理?

謝謝大家。

  • 直接在 Model 中寫個新方法

public function postWithOther()

Controller 才不需要關心裏面是否有事務。

  • 關於 MC 兩層的分工,樓主還需另外好好學習。

按我的理解,model實際上應該是一個商務邏輯層,你說的這個情境,完全可以在model中寫一個方法(同時包括事務的處理)。
關於CI事務的使用參考文檔:http://codeigniter.org.cn/user_guide/database/transactions.html

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.