TP框架---thinkphp模型

1.获取系统常量信息的方法:在控制器DengLuController里面下写入下面的方法,然后调用该方法。

public function test()
    {
        //echo "这是测试的"
        //$this->assign("a","world");
        //$this->show();

        var_dump(get_defined_constants());//获取系统常量信息。里面加上参数true,就会按照类把所有的信息显示出来。

    }

系统信息里面比较重要的是user里面的信息,有时候会用到这些信息。下面都是比较重要的信息。

//‘__ROOT__‘ => string ‘/thinkphp‘ (length=9)  //整个tp框架根目录
//‘__INFO__‘ => string ‘Admin/DengLu/test‘ (length=17)  //获取模块名/控制器名/方法名
//‘__SELF__‘ => string ‘/thinkphp/index.php/Admin/DengLu/test‘ (length=37) //代表自身的路径
//‘__APP__‘ => string ‘/thinkphp/index.php‘ (length=19)  //代表入口文件地址
// ‘__MODULE__‘ => string ‘/thinkphp/index.php/Admin‘ (length=25)  //模块文件夹路径
//‘__CONTROLLER__‘ => string ‘/thinkphp/index.php/Admin/DengLu‘ (length=32)  //控制器文件夹路径
// ‘__ACTION__‘ => string ‘/thinkphp/index.php/Admin/DengLu/test‘ (length=37)  //找到操作方法

2.跨控制器的调用

跨控制器调用就是在某一个控制器里面写了一个方法,要在每一个页面都拿来用。

例如:新建一个控制器MainController.class.php,控制器的内容如下,里面有一个方法,输出“大苹果商城”。

<?php
namespace Admin\Controller;
use Think\Controller;
class MainController extends Controller
{
    public function showList()
    {
        echo "大苹果商城";
    }
}

在MainController.class.php同一级目录下有一个控制器DengLuController.class.php,要在里面调用MainController.class.php里面的showList方法。调用方法如下:

<?php
namespace Admin\Controller;
use Think\Controller;
class DengLuController extends Controller
{
    public function test()
    {
        //1.造新对象 MainController,调用里面的showList方法。
        //$m = new MainController();
        //$m->showList();
        //2.使用快捷函数A
        //$m = A("Main");//A方法用来实例化控制器对象,控制器前面不加模块名调用的是控制器同级目录下的其它控制器。
        //$m->showList();

        //$m = A("Home/Index");//控制器前面加上模块名,就是调取的其它模块下的控制器
        //$m->test();//Index控制器里面有个test方法,调用此方法。
        //3.使用快捷函数R
        //$m = R("Home/Index/test");//R实例化对象同时调用指定方法,直接写控制器和方法名。
    }
    public function _empty()//当访问空方法时执行这个方法,输出一句话。
    {
        echo "您输入的地址不对";
    }
}

3.生成路径的方法,可以在任意方法里面生成任何方法的路径,之遥前面加上模块名和控制器名即可。

<?php
namespace Admin\Controller;
use Think\Controller;
class DengLuController extends Controller
{
    public function test()
    {
        //快捷函数U方法
        echo U("test");//生成test方法的完整路径。
        echo U("Main/test");//生成Main控制器下test方法的完整路径。
        echo U("Home/Main/test");//生成Home模块下的Main控制器下test方法的完整路径。
    }
    public function _empty()
    {
        echo "您输入的地址不对";
    }
}

4.连接数据库配置及Model数据模型层

(1)修改配置

  做配置要在自己的配置文件里面修改配置,这里是在D:\wamp\www\thinkphp\Application\Admin\Conf\config.php里面修改。将tp框架配置文件D:\wamp\www\thinkphp\ThinkPHP\Conf\convention.php文件里面讲需要修改的配置复制到config.php里面去修改。修改的内容大致如下,配置信息修改成自己的数据库的信息。由于该配置是在Admin模块下,所以只有该模块下的程序代码才可以访问数据库。

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

(2)制作model模型

  a.model本身就是一个类文件

  b.数据库中的每个数据表都对应一个model模型文件。

  c.建立model模型:

  例如如果要访问数据库中的nation表,要现在Admin\Model目录下新建NationModel.class.php文件,文件的内容如下:

<?php
namespace Admin\Model;//命名都要改成Model
use Think\Model;
class Nation extends Model//继承自父类Model
{
    //如果有特殊需求可以在这里写上,正常的话不需要写需求。
}

下面是新建Nation类的三种方法

<?php
namespace Admin\Controller;
use Think\Controller;
class DengLuController extends Controller
{

    public function shuJu()
    {
        //1.new的方式
        //$n = new \Admin\Model\NationModel();//这种方法造的是子类对象
        //var_dump($n);

        //2.使用快捷方式D方法
        //$n = D("Nation");//这种方法造的是父类的对象
        //var_dump($n);

        //3.使用快捷方式M方法
        $n = M("Nation");//这种方法造的是父类的对象
        var_dump($n);
    }

    public function _empty()
    {
        echo "您输入的地址不对";
    }
}

5.命名空间

命名空间相当于虚拟的目录,意思是做一个虚拟的目录,本来A文件夹下放了一个文件aa,用程序写一个文件目录,把aa文件的上一级当成是B文件夹。(文件aa在A文件夹里面,用程序说aa文件在B文件夹里面)。

  TP框架做虚拟空间是为了能够有一个统一的文件夹管理,比如说把类文件都放在同一个文件夹里面,在调用这些类文件时就不需要用include、require来加载这些类文件了,可以实现自动加载。同时,所有的文件命名规则都一样,同时目录都是定死的,就可以使用自动加载类了,就可以直接new 类了。由此可见,TP框架里面使用命名空间的目的主要是为了自动加载类。  

  TP框架下有一个初始命名空间(相当于根目录)
  初始命名空间:ThinkPHP\Library。

  在初始空间命名下又包含很多根命名空间。这些根命名空间主要分两类:

  (1)TP核心类里面的根。在Library目录下所有的文件夹都是根。在写命名空间的时候要从根开始写。

  (2)APP里面的根。APP里面的根是以模块名命名的。

  写类时,用use引入命名空间,例如use Think\Controller,Think是根目录,Controller是父类也是文件名。而在namespace Admin\Controller;中,Controller是真是的文件夹

时间: 2024-10-17 21:57:06

TP框架---thinkphp模型的相关文章

TP框架---thinkphp基础知识

php框架    发瑞 一.真实项目开发步骤: 多人同时开发项目,协作开发项目.分工合理.效率有提高(代码风格不一样.分工不好) 测试阶段 上线运行 对项目进行维护.修改.升级(单个人维护项目,十分困难,代码风格不一样) 项目稳定的运行阶段 项目停止运行(旧项目的人员已经全部离职,新人开发新项目)   二.问题: 1. 多人开发项目,分工不合理,(html   php   mysql) 2. 代码风格不一样,后期维护十分困难 3. 项目生命周期十分短,项目生命没有延续性,造成资源浪费.人员浪费

TP框架---Model模型层---做模型对象

TP框架----Model模型层---------------做模型对象 Model模型层是用来做什么的呢???? 主要是用来做操作数据库访问的. 也就说明TP框架自带了一种访问数据库的方式,使用的是Model模型. Model模型怎样使用呢??? 要使用Model模型层访问数据库的话,需要做配置,因为必须把数据库的一些参数配置好之后,才能连接,所以找到Config.php 配置文件,打开 这些是关于数据库的配置, 要把这些粘贴到config.php 进行修改. config.php配置文件(修

tp框架-----Model模型层

1.Model模型层是用来做什么的呢? 主要是用来做操作数据库访问的.也就说明TP框架自带了一种访问数据库的方式,使用的是Model模型. 2.Model模型怎样使用呢? 要使用Model模型层访问数据库的话,需要做配置,因为必须把数据库的一些参数配置好之后,才能连接,所以找到Config.php.    如何修改配置呢? 1)打开下图路径中的Convention.php文件 2)复制convention.php中的下图内容到Home/Conf/config.php中 3)修改配置,将自己的数据

TP框架---thinkphp使用ajax

thinkphp使用ajax和之前使用ajax的方法一样,不同点在于之前的ajax中的url指向了一个页面,而thinkphp里面的url需要指向一个操作方法. 一.thinkphp使用ajax返回数据 1.先在Admin\Controller\MainController.class.php里面写一个方法 public function testajax()//ajax测试方法 { $this->show(); } 2.在Admin\View\Main文件夹里面建对应的显示页面testajax

TP框架---thinkphp修改删除数据

1.在控制器MainController里面写一个方法,调用Nation表中的数据. public function zhuyemian() { $n = D("Nation");//造一个Nation对象 $attr = $n->select();//查询所有数据,返回的是一个二维数组. $this->assign("n",$attr);//将二维数组注册到模板里面显示. $this->show();//调用模板显示 } 2.新建一个显示的模板文

TP框架---thinkphp查询和添加数据

查询 <?php namespace Admin\Controller; use Think\Controller; class MainController extends Controller { public function showList() { echo "大苹果商城"; } public function test() { //数据访问 //造模型对象 //$nation = D("Nation");//连接数据库中的Nation表 //查询

TP框架控制器模型

function DB() { //原始方式 /*$sc = new \Home\Model\dengluModel(); var_dump($sc);*/ $a = D("denglu"); var_dump($a); //使用快捷方法 M方法 $m = M("denglu"); //var_dump($m); //操作数据库 $attr = $a->select(); //查询所有数据 也可以给参数查询特定的 返回的是二维数组 可以查询多条数据 $attr

TP框架基础(三)

[系统常量信息] 获取系统常量信息: 如果加参数true,会分组显示: > APP_PATH =>string'./shop/' 项路径目> MODE_PATH 模型路径> __SELF__ 自身路径 > '__APP__'=>string'/ThinkPHP/index.php' 入口文件 > __MODULE__ =>string'/ThinkPHP/index.php/Home' 当前模块路径 > __ACTION__ 当前方法的路径 >

tp框架知识集锦(3.2)

php框架 一.真实项目开发步骤: 多人同时开发项目,协作开发项目.分工合理.效率有提高(代码风格不一样.分工不好) 测试阶段 上线运行 对项目进行维护.修改.升级(单个人维护项目,十分困难,代码风格不一样) 项目稳定的运行阶段 项目停止运行(旧项目的人员已经全部离职,新人开发新项目)   二.问题: 1. 多人开发项目,分工不合理,(html   php   mysql) 2. 代码风格不一样,后期维护十分困难 3. 项目生命周期十分短,项目生命没有延续性,造成资源浪费.人员浪费 4. 项目不