• 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;
            }
        }
    }
  • 相关阅读:
    修改jupyter notebook主题、字体和启动路径
    numpy-matrix 方法速查
    Pycharm配置github
    数据库索引
    Matplotlib简单入门学习
    基础算法简单实现-python
    Learn Spring Framework(continue update...)
    "Hello World!" for Microsoft Windows
    "Hello World!" for the NetBeans IDE
    Lesson: The "Hello World!" Application
  • 原文地址:https://www.cnblogs.com/xiaodouding/p/6801170.html
Copyright © 2020-2023  润新知