php模型和控制器之间交互

学习使用的是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吗?

还有顺便问问服务层和逻辑层该如何运用??

问题有点多,希望大家告知下,多谢!


临摹微笑
浏览 1328回答 3
3回答

海绵宝宝撒

如果完全遵循MVC的话,数据处理肯定放model啊,然后controller负责调用model 然后根据model返回的数据来进行逻辑处理,TP中model也是可以validate的。服务层就是model的一个分层service,一起分出来的还有logic,他们就是对model的一个分离,service负责提供给controller的接口,而logic帮助controller处理逻辑。比如验证 可以model只做增删改查,logic调用model做判断并且处理逻辑 再返回给service。就是为了降低方法之间的耦合

qq_花开花谢_0

1.MVC了解一下!逻辑控制写在控制器,数据处理写在model里。2.控制器调用model中的方法,model的方法执行成功或者失败返回布尔值,然后控制器根据布尔值来判断执行的结果。3.答案1
打开App,查看更多内容
随时随地看视频慕课网APP