新手请教,手册是在控制器中增删改查,怎么在模板里面...

#1 2895594403

class main extends spController
{
        function index(){ // 这里是首页


                $this->display("login.html"); // 显示模板,这里使用的模板是根目录/tpl/green/index.html。
        }

        function login(){ //登录验证
            $user = spClass("user");
            $conditions = array( //
                'u_username' => $this->spArgs('u_username'),
                'u_password' => $this->spArgs('u_password'),
                'identity' => $this->spArgs('identity'),
            );
            //$user->create($newrow);

            $users=$user->find($conditions);
            if($users){

          $_SESSION['name']=$conditions['u_username'];//将用户名保存到session
           echo "";
            }
            else{
                echo "";

            }
            $this->display("login.html");
        }

        function write(){
            if(!$_SESSION['name']){
                echo "";
            }
            $this->display('messages.html');
        }

这是在控制器中写的  请问怎么在model里面写增删改查方法


2016-07-15 16:36:23

#2 jake

其实很简单的php语法

比如说你这里有个user的model类

大概样子是:

class user extends spModel
{
  var $pk = "id";
  var $table = "user_table";
}

上面的代码中$users=$user->find($conditions);

是正常调用了model方法来查询的,当然,你希望是在所谓model里面来做这个事情,那么也简单,把user类改一下

class user extends spModel
{
  var $pk = "id";
  var $table = "user_table";
  
  function findByConditions($condition){
        return $this->find($condition);
  }
}

那么刚才那句$users=$user->find($conditions);
就可以改成

$users=$user->findByConditions($conditions);

其他的改增方法,都可以自己在model里面定个名字,把外面的代码复制进来,然后再在控制器里面把参数传过来执行代码后返回,就可以了。

这样不就可以在model里面写增删改查方法了吗




如果不怕麻烦,可以更进一步,比如说spModel有个find方法,你还可以

class user extends spModel
{
  var $pk = "id";
  var $table = "user_table";
  
  function find($conditions = null, $sort = null, $fields = null){
        return parent::find($conditions, $sort, $fields);
  }
  
  function findByConditions($condition){
        return $this->find($condition);
  }
}

把spModel里面有的每个public方法,都按find的方法全部继承一次,那么就可以达成胖model瘦controller的想法了。

2016-07-15 17:01:21