thinkphp5学习积累

thinkphp5安装:我是使用的git安装,由于从github上面clone很慢,我是从码云上clone的,git命令为 

git clone https://git.oschina.net/liu21st/thinkphp5.git,然后进入到thinkphp5目录里

git clone https://git.oschina.net/liu21st/framework.git,将framework文件夹的名字修改为thinkphp

输入网址localhost/thinkphp5/public看是否安装成功

thinkphp5目录结构如下

├─application           应用目录(可设置)
│  ├─index              模块目录(可更改)
│  │  ├─config.php      模块配置文件
│  │  ├─common.php      模块公共文件
│  │  ├─controller      控制器目录
│  │  ├─model           模型目录
│  │  └─view            视图目录
│  │
│  ├─command.php        命令行工具配置文件
│  ├─common.php         应用公共文件
│  ├─config.php         应用配置文件
│  ├─tags.php           应用行为扩展定义文件
│  ├─database.php       数据库配置文件
│  └─route.php          路由配置文件

设置调试模式,在application/config.php中将'app_debug'设置为true

如果修改控制器名为HelloWorld,那么访问index方法的url为 http://tp5.com/index.php/index/hello_world

下面的访问地址是错误的  http://tp5.com/index.php/index/HelloWorld

如果将application/config.php中url_convert设置为false,那么上面的地址可以访问

class Index
{
    public function index($name = 'World')
    {
        return 'Hello,' . $name . '!';
    }

}

当我们带name参数访问入口文件地址(例如 http://tp5.com?name=ThinkPHP)的时候,在浏览器中可以看到如下输出:

Hello,ThinkPHP!


现在我们在给控制器添加视图文件功能,我们在application/index目录下面创建一个view目录,然后添加模板文件view/index/hello.html(注意大小写),我们添加模板内容如下:
<html>
<head>
<title>hello {$name}</title>
</head>
<body>
    hello, {$name}!
</body>
</html>
要输出视图,必须在控制器方法中进行模板渲染输出操作,现在修改控制器类如下:


<?php
namespace app\index\controller;


use think\Controller;


class Index extends Controller
{
    public function hello($name = 'thinkphp')
    {
        $this->assign('name', $name);
        return $this->fetch();
    }
}
[ 新手须知 ]
这里使用了use来导入一个命名空间的类库,然后可以在当前文件中直接使用该别名而不需要使用完整的命名空间路径访问类库。也就说,如果没有使用
use think\Controller;
就必须使用

class Index extends \think\Controller
这种完整命名空间方式。

在后面的内容中,如果我们直接调用系统的某个类的话,都会假设已经在类的开头使用use进行了别名导入。
注意,Index控制器类继承了 think\Controller类之后,我们可以直接使用封装好的assign和fetch方法进行模板变量赋值和渲染输出。
fetch方法中我们没有指定任何模板,所以按照系统默认的规则(视图目录/控制器/操作方法)输出了view/index/hello.html模板文件。
接下来,我们在浏览器访问

http://tp5.com/index.php/index/index/hello

输出:hello,thinkphp!

读取数据
在开始之前,我们首先在数据库demo中创建一个think_data数据表(这里以mysql数据库为例):
CREATE TABLE IF NOT EXISTS `think_data`(
    `id` int(8) unsigned NOT NULL AUTO_INCREMENT,
    `data` varchar(255) NOT NULL,
    PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 ;


INSERT INTO `think_data`(`id`,`data`) VALUES
(1,'thinkphp'),
(2,'php'),
(3,'framework');
首先我们需要在应用的数据库配置文件application/database.php中添加数据库的连接信息如下:
return [
    // 数据库类型
    'type'        => 'mysql',
    // 服务器地址
    'hostname'    => '127.0.0.1',
    // 数据库名
    'database'    => 'demo',
    // 数据库用户名
    'username'    => 'root',
    // 数据库密码
    'password'    => '',
    // 数据库连接端口
    'hostport'    => '',
    // 数据库连接参数
    'params'      => [],
    // 数据库编码默认采用utf8
    'charset'     => 'utf8',
    // 数据库表前缀
    'prefix'      => 'think_',
    // 数据库调试模式
    'debug'       => true,
];
接下来,我们修改下控制器方法,添加读取数据的代码:

<?php
namespace app\index\controller;


use think\Controller;
use think\Db;


class Index extends Controller
{
    public function index()
    {
        $data = Db::name('data')->find();
        $this->assign('result', $data);
        return $this->fetch();
    }
}
定义好控制器后,我们修改模板文件,添加数据输出标签如下:

<html>
<head>
<title></title>
</head>
<body>
{$result.id}--{$result.data}
</body>
</html>
模板标签的用法和Smarty类似,就是用于输出数据的字段,这里就表示输出think_data表的id和data字段的值。
我们访问会输出:1--thinkphp

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值