我們在使用PHP的時候遇到一個問題
比如我現在有三張表
用戶表: User
商品表: Goods
代金券: Ticket
用戶地址: Address
由此就對應了三個對象
User, Goods, Ticket, Address
我現在有幾個功能:取得用戶的代金券, 取得用戶的可用代金券, 取得用戶的地址列表, 取得用戶所購買的商品
我現在是這麼做的
<code class="php">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); } ... }</code>
為什麼這樣做呢, 我覺得和用戶緊密相關的操作放到用戶對像中比較合理! 單這個感覺冗餘的挺多的, 大家一般都是怎麼整理的呢!感覺也有可能會造成User類過大!
大家通常都是怎麼處理的呢?
我們在使用PHP的時候遇到一個問題
比如我現在有三張表
用戶表: User
商品表: Goods
代金券: Ticket
用戶地址: Address
由此就對應了三個對象
User, Goods, Ticket, Address
我現在有幾個功能:取得用戶的代金券, 取得用戶的可用代金券, 取得用戶的地址列表, 取得用戶所購買的商品
我現在是這麼做的
<code class="php">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); } ... }</code>
為什麼這樣做呢, 我覺得和用戶緊密相關的操作放到用戶對像中比較合理! 單這個感覺冗餘的挺多的, 大家一般都是怎麼整理的呢!感覺也有可能會造成User類過大!
大家通常都是怎麼處理的呢?
model分類:
user model 只放使用者相關的
order model 只放訂單相關的
注意業務要拆分,解耦合
也可以拆分為Logic邏輯層、model資料層、service服務層這樣的
各個表獲取數據的方法寫在各自的Model類別裡,要從多個數據表中取數據的話,在控制器裡分別實例化表對應的Model,並分別調用各自的方法獲取數據,在Controller裡將數據整合。