我們在使用PHP的時候遇到一個問題
比如我現在有三張表
使用者表: User
商品表: Goods
代金券: Ticket
使用者地址: Address
由此就對應了三個對象
User, Goods, Ticket, Address
我現在有幾個功能:取得使用者的代金券, 取得使用者的可用代金券, 取得使用者的地址清單, 取得使用者所購買的商品
我現在是這麼做的
class User extends Model{ public function oder() { return OrderRepository::getByUserId($this->id); } public function successOrder() { return OrderRepository::getSuccessByUserId($this->id); } public function cancelOrder() { return OrderRepository::getCancelByUserId($this->id); } public function address() { return AddressRepository::getByUserId($this->id); } ...}
為什麼這樣做呢, 我覺得和使用者緊密相關的操作放到使用者物件中比較合理! 單這個感覺冗餘的挺多的, 大家一般都是怎麼整理的呢!感覺也有可能會造成User類過大!
大家一般都是怎麼處理的呢?
回複內容:
我們在使用PHP的時候遇到一個問題
比如我現在有三張表
使用者表: User
商品表: Goods
代金券: Ticket
使用者地址: Address
由此就對應了三個對象
User, Goods, Ticket, Address
我現在有幾個功能:取得使用者的代金券, 取得使用者的可用代金券, 取得使用者的地址清單, 取得使用者所購買的商品
我現在是這麼做的
class User extends Model{ public function oder() { return OrderRepository::getByUserId($this->id); } public function successOrder() { return OrderRepository::getSuccessByUserId($this->id); } public function cancelOrder() { return OrderRepository::getCancelByUserId($this->id); } public function address() { return AddressRepository::getByUserId($this->id); } ...}
為什麼這樣做呢, 我覺得和使用者緊密相關的操作放到使用者物件中比較合理! 單這個感覺冗餘的挺多的, 大家一般都是怎麼整理的呢!感覺也有可能會造成User類過大!
大家一般都是怎麼處理的呢?
model分類:
user model 只放使用者相關的
order model 只放訂單相關的
注意業務要拆分,解耦合
也可以拆分為Logic邏輯層、model資料層、service服務層這樣的
各個表擷取資料的方法寫在各自的Model類裡,要從多個資料表中取資料的話,在控制器裡分別執行個體化表對應的Model,並分別調用各自的方法擷取資料,在Controller裡將資料整合。