鍍金池/ 問答/PHP/ Laravel - 數(shù)據(jù)處理邏輯、Model過多,各位把它們放哪兒?

Laravel - 數(shù)據(jù)處理邏輯、Model過多,各位把它們放哪兒?

之前用Yii2比較多,現(xiàn)在切換到Laravel有一段時(shí)間,內(nèi)心一直有兩個(gè)問題:

  1. 數(shù)據(jù)處理邏輯太多,放在 Controller 中不合適,各位都放在哪?
  2. 數(shù)據(jù)庫(kù)Model太多(20+個(gè),都在 app 根目錄下),各位如何整理存放?
回答
編輯回答
心夠野
  1. Model 本身即代表數(shù)據(jù)表,所以你有幾張表一般就對(duì)應(yīng)幾個(gè) Model,這個(gè)多有什么關(guān)系呢?
  2. Model 層最好就是純粹的 Laravel 的 Eloquent Model,里面不要有業(yè)務(wù)邏輯。
  3. 增加 Repository 層,將 Model 的業(yè)務(wù)邏輯封裝在這里。
  4. 增加 Service 層,將 Controller 的業(yè)務(wù)邏輯封裝在這里。
  5. Controller 層只負(fù)責(zé)數(shù)據(jù)獲取、校驗(yàn),調(diào)用相應(yīng) Service 的方法,返回?cái)?shù)據(jù)。
2018年7月27日 19:58
編輯回答
貓館
  1. 可以在Http同級(jí)目錄增加一個(gè)Logic層來存邏輯代碼。controller只負(fù)責(zé) 接收請(qǐng)求,返回?cái)?shù)據(jù)。model只負(fù)責(zé)操作與數(shù)據(jù)庫(kù)有關(guān)的操作。

2.可以在Http同級(jí)目錄新建一個(gè)Model目錄,如果模型還是感覺很多的話,繼續(xù)再model下建立對(duì)應(yīng)的目錄,只是注意文件的命名空間要修改正確

clipboard.png

由于有圖片需要傳,我修改一下答案。

不會(huì)產(chǎn)生重復(fù)的情況???可能您說的意思我沒理解透徹。我現(xiàn)在把我之前的一個(gè)目錄結(jié)構(gòu)發(fā)一下。您看一下有沒有什么疑問

clipboard.png

2018年8月18日 06:37
編輯回答
厭惡我

推薦使用RPS 模式
推薦文章:http://oomusou.io/laravel/lar...

2018年1月12日 06:27