thinkphp3.2中service与logic层到底该如何使用,下面是我自己写的实例,但感觉怪怪的希望大虾们提下意见

/*
 * author:Jiang
 * 快速添加用户-后台-控制器
 * UserInfoController.class.php中   
 * 2016-06-07
 */
public function addUserInfoQuick(){
    if(IS_POST){
        $url = '/index.php?m=Admin&c=UserInfo&a=userInfoManage';
        //控制器主要完成取数据,调用biz方法,转发到下一个页面。单元测试的话,可以使用service接口
        $d_userInfo = array();
        $d_userInfo['username'] = I('param.username','','trim,strip_tags');//姓名
        $d_userInfo['pwd'] = I('param.pwd','','trim,strip_tags');
        $d_userInfo['re_pwd'] = I('param.re_pwd','','trim,strip_tags');
        $d_userInfo['email'] = I('param.email','','trim,strip_tags');//邮箱
        $m_userInfo_service = D('Home/UserInfo','Service');
        $result = $m_userInfo_service->addUserInfoQuickService($d_userInfo);//调用BLL
        if($result){
            json_error_tip(0,'快速添加会员成功',$url);
        }else{
            json_error_tip(1,'快速添加会员失败',$url);
        }
    }else{
        $m_config = D('Home/Config');
        $link_expire_list = $m_config->getLinkExpires();//链接是否有效配置
        $is_actived_list = $m_config->getActiveds();//账号是否激活配置
        $status_list = $m_config->getStatus();//账号状态配置
        //数据
        $data = array();
        //配置
        $config_arr = array();
        $config_arr['link_expire_list'] = $link_expire_list;
        $config_arr['is_actived_list'] = $is_actived_list;
        $config_arr['status_list'] = $status_list;
        $data['config_list'] = $config_arr;
        //绑定
        $this->assign('data',$data);
        $this->display('user_info_add');
    }
}

/**
 * 添加用户-服务层
 * @author Jiang
 * @access public
 * @param array $options 表单数据(账号,密码,确认密码,验证码)
 * @return mixed
 * UserInfoService.class.php中
 * @date 2016-06-07
 */
public function addUserInfoService($options=array()){
    //必填过滤
    if($options['username'] == ''){
        json_error_tip(1,'请填写用户名');
    }
    if($options['pwd'] == ''){
        json_error_tip(1,'请填写密码');
    }
    if($options['re_pwd'] == ''){
        json_error_tip(1,'请填写确认密码');
    }
    if($options['vcode'] == ''){
        json_error_tip(1,'请填写验证码');
    }
    //格式验证过滤
    if(check_accout($options['username']) === false){
        json_error_tip(1,'用户名格式不正确');
    }
    if(check_pwd($options['pwd']) === false){
        json_error_tip(1,'密码格式不正确');
    }
    if(check_pwd($options['repwd']) === false){
        json_error_tip(1,'确认密码格式不正确');
    }
    if($options['pwd'] != $options['repwd']){
        json_error_tip(1,'密码与确认密码不一致');
    }
    if(check_vcode($options['vcode'],'vcode') === false){
        json_error_tip(1,'验证码不正确');
    }
    $m_user_info_logic = D('Home/UserInfo','Logic');
    $data = array();
    $data['username'] = $options['username'];
    $data['pwd'] = $options['pwd'];
    return $m_user_info_logic->addUserInfoLogic($data);
}

/**
 * 快捷添加用户-逻辑层-后台使用
 * @author Jiang
 * @access public
 * @param array $options 表单数据
 * @return mixed
 * UserInfoLogic.class.php中
 * @date 2016-05-26
 */
public function addUserInfoLogic($options=array()){
   //集中处理核心业务逻辑,并返回结果
   //业务逻辑,1用户名不能重复
   $m_user_info = D('Home/UserInfo');
   $user_info_obj = $m_user_info->getUserInfoByUserName($options['username']);
   if(!empty($user_info_obj)){
      json_error_tip(1,'该账号已经被使用');
   }
   $options['user_id'] = get_unique_str($options['username'],'user_');//唯一标识记录
   $m_userInfo = D('Home/UserInfo');
   return $m_userInfo->addUserInfo($options);//调用模型添加方法,将数组作为对象传递给模型层
}

/**
 * 添加用户-模型层
 * @param array $input 数据
 * UserInfoModel.class.php中
 * @return bool|mixed
 */
public function addUserInfo($input=array()){
   if($this->create($input)){
      $result = $this->add();
      return $result;
   }else{
      return false;
   }
}


微笑de迪妮莎
浏览 7420回答 1
1回答

大写的王

tp  MVC没有什么严格的区分,甚至全在控制器中实现mc的操作都没什么影响。
打开App,查看更多内容
随时随地看视频慕课网APP