素材牛VIP会员
thinkphp的自定义model类有什么作用?
 wo***fp  分类:ThinkPHP  人气:891  回帖:4  发布于6年前 收藏

请问,thinkphp的自定义model类有什么作用?如:

<?php
//自定义Modle类
namespace Home\Model;
use Think\Model;

class StuModel extends Model{


    public function getInfo(){
        echo '这是自定义的Model类';
    }

    public function getIp(){
        echo $_SERVER['REMOTE_ADDR'];
    }
}


----------
//使用自定义的Modle类
<?php

namespace Home\Controller;
use Think\Controller;
class ComController extends Controller{
    public function index(){


        $model = D('stu');
        $model->getInfo();
        $model->getIp();


    }
}
 标签:thinkphp

讨论这个帖子(4)垃圾回帖将一律封号处理……

Lv7 码师
ph***16 JAVA开发工程师 6年前#1

一般都用M。如果想对某个表的某些操作进行封装,便于在控制器里复用,就先自定义个Model类,在控制器里用D去实例化它。

Lv2 入门
th***kd 站长 6年前#2

当model复杂到一定程度,自定义model可以省很多时间。

比如原先是:

$User = M('User');
$userdata = $User->where( "username='%s'" , $this->user )->find();

自定义model之后就不需要把这段代码复制得到处都是。

假设现在数据库要把username改成adminname,直接修改自定义model就可以全局调用了。
不用到处去修改。

Lv2 入门
yz***zw 学生 6年前#3

如果不写自定义model类,就没有办法使用 D 方法啦,
建议你了解一下ThinkPHP的 D 方法和 M 方法的区别
如果你只是进行表的CRUD的话,建议你直接使用 M 方法了
区别点我

Lv1 新人
威***军 职业无 6年前#4

Model用不用在于你自己的选择,我只所以选择用,是因为自动验证和自动完成:

/**
     * 验证规则
     * @var array
     */
    protected $_validate = array(
        array('person','require','收货人姓名必须填写!'),
        array('province','require','省份必须选择!'),
        array('city','require','地市必须选择!'),
        array('addr','require','收货地址必须填写!'),
        array('phone','require','手机号码必须填写!'),
        array('phone','/^1\d{10}$/','手机号码格式不正确!'),

    );

    /**
     * 自动完成
     * @var array
     */
    protected $_auto = array (
        array('default','0'),
    );
 文明上网,理性发言!   😉 阿里云幸运券,戳我领取