ThinkPHP 框架模型

 1 在MainController.class.php 控制器中有一个test的方法,同时还有一个deng的方法,我想在test方法中使用deng方法 

表示为

<?php
namespace HomeController;
use ThinkController;
class MainController extends controller
{
    public function test()
    {
       $this->deng();
    }

 2 在MainController.class.php 控制器中有一个test的方法,在同一个模板下还有一个名为IndexController.class.php的控制器,其中有一个index方法,我想在test方法中使用index方法 表示为:

<?php
namespace HomeController;
use ThinkController;
class MainController extends controller
{
    public function test()
    {
 
   //跨控制器调用方法
     $index=new IndexController();
     $index->index();
       $index=A("Index");
        $index->index();
      R("Index/index");
   }

上述是三种不同的调用方法

 3 在Home文件夹下的MainController.class.php 控制器中有一个test的方法,在不同的模板Admin文件夹下还有一个名为TextController.class.php的控制器,其中有一个aa方法,我想在test方法中使用aa方法 表示为:

<?php
namespace HomeController;
use ThinkController;
class MainController extends controller
{
    public function test()
    {
       //跨模块调用方法
       $index=new AdminControllerTextController();
      $index->aa();
       $index=A("Admin/Text");
        $index->aa();
        R("Admin/Text/aa");
   }

4 使用模型来操作数据库,用D调出来的是子类对象,如果用M(“nation”)调出来的是父类对象; 用select() 调出来的是所有对象,是一个二维数组,如果用find()调出来的是一条数据,比如 find("n001")

$nation=D("nation");
$arr=$nation->select();
var_dump($arr);

5 用where查询语句 where(条件)

 $nation=D("nation");
        $arr=$nation->where("code='n005' or code='n003'")->select();
        var_dump($arr)

查出来的是两条数据

6 TABLE()可以用来切换数据表  我选用的是数据库club中的表格cname来切换

$nation=D("nation");
$arr=$nation->table("cname")->select();
var_dump("$arr");

7 field(指定的数据库的某一个字段),查询出来的只有这个字段的数据

$nation=D("nation");
$arr=$nation->field("code")->select();
var_dump($arr);

8 order() 是指把查询的内容按照顺序排列

 $nation=D("nation");
$arr=$nation->order("code desc")->select();
        var_dump($arr);

9 limit() 分页查询  如果()内只有一个值,那么意味着显示多少条数据, 如果有两个值(,)那么意味着跳过多少条显示多少条

$nation=D("nation");
$arr=$nation->limit(6)->select();
        var_dump($arr);

如果用的是page()分页查询 会更人性化 page(,)括号里面有两个值,第一个值表示第几页,第二个值表示每页显示多少条

10 分组 group() 比如我要查car表中 按照brand分组 每一组有多少条数据

$nation=D("nation");
$arr=$nation->field("brand,count(*)")->table("car")->group("brand")->select();
var_dump($arr);

11 join  使两个表联系起来

$login=D("login");
$arr=$login->field("login.uid,login.pwd,cname.name")->join("cname on cname.code=login.code")->select();
var_dump($arr);

如图所示

在登录的时候我们都会存一个session值 那么为了方便,我们建一个名为BaseController.class.php的控制器

usename HomeController;
use ThinkController;
class BaseConroller extends Controller
{
         function __construct()
    {
        parent::__construct(); //在Controller控制器中也有构造函数,为了防止被覆盖,我们先调用一下
        if(!session("?uid"))
        {
            $this->redirect("Text/test");   //如果没有存session 那么就返回登录页面
             exit;
        }
    }
}
原文地址:https://www.cnblogs.com/xiaodouding/p/6801170.html