• ThinkPHP的输出和模型使用


    1.假设在v层需要输出一个变量怎么办呢?即如同在html当中输出php代码。

    可以直接使用{$name}代替。花括号被称之为标识符。可以通过修改配置项('TMPL_L_DELIM'=>'<(')进行修改L是左标识符,R是右标识符。

    V层

    <!DOCTYPE html>
    <html>
    <head>
        <title>title</title>
    </head>
    <body>
    {$data}
    </body>
    </html>

    在使用{$name}之前需要在控制器当中申明好这个的值。使用$this->assign去设置。第一个参数即为要调用的变量,第二个参数即为值。

    <?php
    // 本类由系统自动生成,仅供测试用途
    class IndexAction extends Action {
        public function index(){
            $name = "def";
            $this->assign('data',$name);
            $this->display();
        }
        public function admin(){
            echo "this is admin";
        }
    }

    所以输出的就是:def

    2.要怎么跟数据库连接?

    在配置项里(Conf/config.php)

      添加如下配置项

    'DB_TYPE'=>'mysql', //设置数据库类型
    'DB_HOST'=>'localhost',//设置主机
    'DB_NAME'=>'thinkphp',//设置数据库名
    'DB_USER'=>'root', //设置用户名
    'DB_PWD'=>'', //设置密码
    'DB_PORT'=>'3306', //设置端口号
    'DB_PREFIX'=>'tp_', //设置表前缀
    以上是一个方法也可以直接:
    'DB_DSN'=>'mysql://root:@localhost:3306/thinkphp',//使用DSN方式配置数据库信息

     然后在控制器当中使用new Model('表明');进行使用

     1 <?php
     2 // 本类由系统自动生成,仅供测试用途
     3 class IndexAction extends Action {
     4     public function index(){
     5         $m = M('tp_user');
     6         $arr = $m->select();
     7         echo "<pre>";
     8         var_dump($arr);
     9         echo "</pre>";
    10         $this->assign('data',$arr[0]['username']);
    11         $this->display();
    12     }
    13     public function admin(){
    14         echo "this is admin";
    15     }
    16 }

    PS:在测试的时候不知道为什么连接的表明会将数据库名也给加上,也就是笨啦我实例化的表明是tp_user我的数据库是thinkphp,那么就会莫名其妙的变成thinkphp_tp_user。所以在创建数据库的时候要将库名带上。否则会一直没有数据。

    3.假设输出的值是一个数组咋办?

    就好比第二个问题里,已经将从数据库里获取到的值拿到了,这个时候是数组。那么我们直接通过$this->assign('data',$arr);直接输出以后需要在V层使用<volist>标签进行遍历数组。

    格式:<volist name='标识符' id='idsss'>{$idsss.列1}------{$idsss.列2}</volist> #标识符就是那个变量,idsss就好比你又重新起个名字,通过idsss.列明就可以直接得到列的值了。

     

  • 相关阅读:
    建立文件类型关联
    Delphi程序员,你们现在还好吗?
    加一文档到开始菜单中的文件夹下
    文本转换为GIF
    取消文件类型的关联
    取得任务栏的高度
    TeeChart使用范例
    同步SQL Server服务器时间
    注册系统热键
    山西襄汾溃坝事故已造成259人死亡
  • 原文地址:https://www.cnblogs.com/nul1/p/9434452.html
Copyright © 2020-2023  润新知