首页 > 代码库 > thinkphp模型层

thinkphp模型层

thinkphp想要做模型model,首先要更改一下配置文件:在Home文件夹下的Conf下的config文件中进行修改:

我们可以将convention里边复制一下过来修改:

<?php
return array(
    //‘配置项‘=>‘配置值‘
    SHOW_PAGE_TRACE =>true,
    /* 数据库设置 */
    DB_TYPE               =>  mysql,     // 数据库类型
    DB_HOST               =>  localhost, // 服务器地址
    DB_NAME               =>  book,          // 数据库名
    DB_USER               =>  root,      // 用户名
    DB_PWD                =>  ‘‘,          // 密码
    DB_PORT               =>  ‘‘,        // 端口
    DB_PREFIX             =>  ‘‘,    // 数据库表前缀
    DB_PARAMS              =>  array(), // 数据库连接参数    
    DB_DEBUG              =>  TRUE, // 数据库调试模式 开启后可以记录SQL日志
    DB_FIELDS_CACHE       =>  false,        // 启用字段缓存
    DB_CHARSET            =>  utf8,      // 数据库编码默认采用utf8
    DB_DEPLOY_TYPE        =>  0, // 数据库部署方式:0 集中式(单一服务器),1 分布式(主从服务器)
    DB_RW_SEPARATE        =>  false,       // 数据库读写是否分离 主从式有效
    DB_MASTER_NUM         =>  1, // 读写分离后 主服务器数量
    DB_SLAVE_NO           =>  ‘‘, // 指定从服务器序号

    /* 数据缓存设置 */
);

将数据库名称等改为自己的就可以了,然后我们开始创建模型对象:

<?php
namespace Home\Controller;//Home是根文件夹,Controller是该文件所在文件夹
use Think\Controller;//ThINK是根文件夹,Controller是该文件所在文件夹
class MainController extends Controller{
    public function index(){
        $n = D("leibie");//创建模型对象,如果创建了模型文件就用这种
        $n = M("leibie");//创建模型对象,创建的是父类对象
        $arr = array("lbid"=>"b005","lbname"=>"小说类");
        //使用数组方式添加
        $n->add($arr);
               }
            }

我们在Home的Model里创建一个文件LeibieModel.classp.hp:

<?php
namespace Home\Model;
use Think\Model;
class LeibieModel extends Model{
}

我们创建了模型对象就可以从数据库查数据了:

<?php
namespace Home\Controller;//Home是根文件夹,Controller是该文件所在文件夹
use Think\Controller;//ThINK是根文件夹,Controller是该文件所在文件夹
class MainController extends Controller{
    public function index(){
        //$n = D("leibie");//创建模型对象,如果创建了模型文件就用这种
        $n = M("leibie");//创建模型对象,创建的是父类对象
        //$arr = array("lbid"=>"b005","lbname"=>"小说类");
        //得到数据的方法
        $arr = $n->select();//读取所有数据
        var_dump($arr);
                }
            }

输出结果为:

技术分享

这就是leibie表中的所有数据。

<?php
namespace Home\Controller;//Home是根文件夹,Controller是该文件所在文件夹
use Think\Controller;//ThINK是根文件夹,Controller是该文件所在文件夹
class MainController extends Controller{
    public function index(){
        //$n = D("leibie");//创建模型对象,如果创建了模型文件就用这种
        $n = M("leibie");//创建模型对象,创建的是父类对象
        //$arr = array("lbid"=>"b005","lbname"=>"小说类");
        //得到数据的方法
      $arr = $n->find("b001");//读一条数据
        var_dump($arr);
                }
            }

读一条数据的输出结果:

技术分享

再看一下返回数据总数:

<?php
namespace Home\Controller;//Home是根文件夹,Controller是该文件所在文件夹
use Think\Controller;//ThINK是根文件夹,Controller是该文件所在文件夹
class MainController extends Controller{
    public function index(){
        //$n = D("leibie");//创建模型对象,如果创建了模型文件就用这种
        $n = M("leibie");//创建模型对象,创建的是父类对象
        //$arr = array("lbid"=>"b005","lbname"=>"小说类");
        //得到数据的方法
     $arr = $n->count();//返回该表数据总数
        var_dump($arr);
                }
            }

输出结果为:

技术分享

thinkphp还支持连贯操作,条件查询:

//连贯操作
        //$arr = $n->where("price>50")->select();//加查询条件
        //$arr = $n->table("brand")->select();//切换数据表
        //$arr = $n->field("code,name")->select();//确定查找的列
        //$arr = $n->order("price")->select();//排序
        //$arr = $n->limit(3,3)->select();//分页查询,跳过3条取3条
        //$arr = $n->page(2)->select();//取第二页
        //$arr = $n->join("")->select();//连接查询
        //$arr = $n->query();//查询原生sql语句

这里就不一一截图了,大家可以试一下。

 

thinkphp模型层