比如說我的controller是這樣的
use App\Model\User;
class UserController extends BaseController
{
protected $model;
public function __construct(User $user)
{
$this->model = $user;
}
public function updatePhone(Request $request)
{
$id = $request->id;
$phone = $request->phone;
}
}
函數updatePhone的用途就是更新用戶的手機。在這一點上我不知道怎么辦好,我可以這樣寫
$res = $this->model->where('id',$id)->update('phone',$phone)
因為這個邏輯只是更新用戶的手機,只是對user表的單表操作,一般的框架里都有現成的對單表curd的函數。我還可以在controller里這樣寫
$res = $this->model->updatePhone($id, $phone);
然后在user model里面加一個接口
public function updatePhone($id,$phone)
{
return $this->where('id',$id)->update('phone',$phone);
}
不知道這兩種寫法哪一個好一點?
6 回答
ibeautiful
TA貢獻1993條經驗 獲得超6個贊
MVC 分層的好處就是隔離,Controller 負責處理請求,Model 負責和數據庫進行 CURD 交互,View 負責顯示數據。如果以后業務擴展,User 表新增 email、nickname 等也會發生更新的字段,這時候再在 Model 中寫 updateEmail 和 uodateNickname,代碼的復用性就很低了。
所以我覺得放到 Controller 中處理,更新指定的字段為指定的值,會更靈活。
陪伴而非守候
TA貢獻1757條經驗 獲得超8個贊
放在model吧 你可以把代碼寫成可以更新多個字段的 自由控制傳參 像2樓上說的 每次都寫一個肯定不好 但是寫一個可以更新一個或多個字段不是很好嘛 又能滿足規范 又不會有重復的工作
- 6 回答
- 0 關注
- 643 瀏覽
添加回答
舉報
0/150
提交
取消
