ThinkPHP中实例Model方法的区别

在TP中,我们对数据库操作时多数都是用TP提供的model去先创建一个表的映射实例,然后在对数据进行处理,但是不同的创建方法对数据的处理和信息的返回却有所不同。

在TP中,我们可以用下面两种方法去创建一个数据表的映射对象(我暂时用到的)

第一种:$Test = D('Test')

第二种:$Test = new Model('Test')

虽然这两种都可以对数据进行select,insert,delete,udpate操作,在数据验证上有很大的不同,

我们来看看效果,先创建一个 TestModel

class TestModel extends Model{

    protected $_validate = array{

              array('title','require','请输入标题',1),

              array('content','require','请输入内容',1),

    }

}

创建一个TestAction

class TestAction extends Action{

         public function Dtest(){

                $test = D('Test');   //第一种情况

               $test = new Model('Test');   //第二种情况

               if($test->Create()){

                        $test->Add();

              }else{

                      $test->getError();

              }

       }

}

在运行的时候,大家会发现,用第一种方式实例一个模型就会有数据检查功能,如果 title 没有填写的话就会提示 “请输入标题” (这个是tp提供的一个自动验证功能,当然也需要在相应的model中定义好验证条件);如果用第二种就没有了·····

posted on 2010-08-19 21:56  言与默  阅读(720)  评论(0)    收藏  举报