为了账号安全,请及时绑定邮箱和手机立即绑定

php模型和控制器之间交互

php模型和控制器之间交互

PHP
临摹微笑 2018-07-16 15:21:50
学习使用的是Tp5.1在看别人代码的时候想很多关于数据库的操作之间写到控制器里面了;public function save(){    $data = input('post');    $validate = $this->validate($data,"app\\common\\TestValidate");        $result = (new UserModel)->save($data);        if($result){        return $this->success('操作成功');    }else{        return $this->success('操作失败');    }}但是有人说这样就没必要用模型,可以将写入数据的方法写到model里面但是写在model中在控制器调用的时候如何判断是否写入成功呢?还有就是将数据验证是应该写在控制器还是模型??比如用户注册 前端提交->控制器接收请求->模型这之中的数据验证写到控制器还是模型如果写到控制器没什么疑问,但是如果写到模型模型中验证失败返回false 咋样返回错误信息呢? 难道说模型中返回一个数组['status'=>0,'msg'=>'手机号码已经被注册'];之后由控制器接收模型返回的该数组 判断返回的status吗?还有顺便问问服务层和逻辑层该如何运用??问题有点多,希望大家告知下,多谢!
查看完整描述

3 回答

?
海绵宝宝撒

TA贡献1809条经验 获得超8个赞

如果完全遵循MVC的话,数据处理肯定放model啊,然后controller负责调用model 然后根据model返回的数据来进行逻辑处理,TP中model也是可以validate的。

服务层就是model的一个分层service,一起分出来的还有logic,他们就是对model的一个分离,service负责提供给controller的接口,而logic帮助controller处理逻辑。
比如验证 可以model只做增删改查,logic调用model做判断并且处理逻辑 再返回给service。
就是为了降低方法之间的耦合


查看完整回答
1 反对 回复 2018-07-22
?
qq_花开花谢_0

TA贡献1835条经验 获得超7个赞

1.MVC了解一下!逻辑控制写在控制器,数据处理写在model里。
2.控制器调用model中的方法,model的方法执行成功或者失败返回布尔值,然后控制器根据布尔值来判断执行的结果。
3.答案1

查看完整回答
反对 回复 2018-07-22
  • 3 回答
  • 0 关注
  • 1327 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信