比如说我的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条经验 获得超5个赞
MVC 分层的好处就是隔离,Controller 负责处理请求,Model 负责和数据库进行 CURD 交互,View 负责显示数据。如果以后业务扩展,User 表新增 email、nickname 等也会发生更新的字段,这时候再在 Model 中写 updateEmail 和 uodateNickname,代码的复用性就很低了。
所以我觉得放到 Controller 中处理,更新指定的字段为指定的值,会更灵活。
陪伴而非守候
TA贡献1757条经验 获得超8个赞
放在model吧 你可以把代码写成可以更新多个字段的 自由控制传参 像2楼上说的 每次都写一个肯定不好 但是写一个可以更新一个或多个字段不是很好嘛 又能满足规范 又不会有重复的工作
- 6 回答
- 0 关注
- 567 浏览
添加回答
举报
0/150
提交
取消