thinkphp模型层

Posted 梦深深处

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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模型层的主要内容,如果未能解决你的问题,请参考以下文章

thinkphp5中的model模型层,有啥用

thinkphp模型层

ThinkPHP的MVC模式

ThinkPHP 3.2.3架构之多层MVC

ThinkPHP框架基础之模型层篇

ThinkPHP讲解——数据库配置及Model数据模型层查询