博客文章已转移到新地址,本地址暂时保留,新文章仅在新地址更新。[置顶]

thinkphp学习笔记

作者:小宝 2017-02-09 13:02:57

学习thinkphp有半个月多了,首先入门的是做一个博客系统,跟着老师的教学,把原生的blog改成tp版的blog系统,之后用tp做了一个类似商业的网站(六堡茶官网),对thinkphp更深入的学习了一番。
总的来说这个框架学起来还是蛮容易接受的,学习框架对于程序的开发来说缩短了周期,简化了操作步骤。
比如输入直接是:
I('post.name','','htmlspecialchars')
单字母函数比如I、D、U、A、M等,使用起来非常方便。
链接数据库可以用数组直接:


'DB_TYPE'   => 'mysql', // 数据库类型
'DB_HOST'   => 'localhost', // 服务器地址
'DB_NAME'   => 'thinkphp', // 数据库名
'DB_USER'   => 'root', // 用户名
'DB_PWD'    => '123456', // 密码
'DB_PORT'   => 3306, // 端口
'DB_PREFIX' => 'think_', // 数据库表前缀 
'DB_CHARSET'=> 'utf8', // 字符集
'DB_DEBUG'  =>  TRUE, // 数据库调试模式 开启后可以记录SQL日志 3.2.3新增

简单设置就可以愉快的进行网站开发了。

实例化数据表可以直接用D函数,模型调用方便。

对数据进行分页是一个专题,当时卡了将近一天,后来发现了问题所在。



$User = M('User'); // 实例化User对象
$count      = $User->where('status=1')->count();// 查询满足要求的总记录数
$Page       = new \Think\Page($count,25);// 实例化分页类 传入总记录数和每页显示的记录数(25)
$show       = $Page->show();// 分页显示输出
// 进行分页数据查询 注意limit方法的参数要使用Page类的属性
$list = $User->where('status=1')->order('create_time')->limit($Page->firstRow.','.$Page->listRows)->select();
$this->assign('list',$list);// 赋值数据集
$this->assign('page',$show);// 赋值分页输出
$this->display(); // 输出模板

这里注意$Page这个变量不可以和系统冲突,否则不会成功。
 

然后上传功能也是一个主题,当时还是得出现了很多问题,要么是没有提示,要么是提示目录问题,提示非法问题。

发现需要在form里面添加属性



<form action="__URL__/upload" enctype="multipart/form-data" method="post" >
<input type="text" name="name" />
<input type="file" name="photo" />
<input type="submit" value="提交" >
</form>

实例化上传类



$upload = new \Think\Upload();// 实例化上传类
    $upload->maxSize   =     3145728 ;// 设置附件上传大小
    $upload->exts      =     array('jpg', 'gif', 'pn