ThinkPHP 5.0.7
与TP3并非版本迭代的关系,对小白来说,下面的就是很明显的区别
和TP3区别
- application中除了应用(框架中,指前后台模块,比如admin文件夹),其他的都是文件了,TP3是自动生成common文件夹
- 入口文件在public中,样式我们习惯放public/static里面,
- 单字母方法没了,需要可以自己定义,大部分助手函数可以替代。
- 控制器名不需要加class。
- 一些写法
目录结构
1).部署框架 目录结构
tp5
├─application 应用目录
├─extend 扩展类库目录(可定义,全局共用的类)
├─public 网站对外访问目录(入口文件,样式文件就放这个的static中)
├─runtime 运行时目录(可定义)
├─vendor 第三方类库目录(Composer)
├─thinkphp 框架核心目录(helper.php助手函数文件)
├─build.php 自动生成定义文件(参考)
├─composer.json Composer定义文件
├─LICENSE.txt 授权说明文件
├─README.md README 文件
└─think 命令行工具入口
!(如果在linux环境下面的话,需要给runtime目录755权限)
~~~
PS. 几个关键的路径:
~~~
目录 说明 常量
tp5 项目根目录 ROOT_PATH
tp5/application 应用目录 APP_PATH
tp5/thinkphp 框架核心目录 THINK_PATH
tp5/exend 应用扩展目录 EXTEND_PATH
tp5/vendor Composer扩展目录 VENDOR_PATH
-------
2).默认应用 目录结构:
~~~
├─application 应用目录(可设置)
│ ├─index 模块目录(可更改)
│ │ ├─config.php 模块配置文件
│ │ ├─common.php 模块公共函数
│ │ ├─controller 控制器目录
│ │ ├─model 模型目录
│ │ └─view 视图目录
│ │
│ ├─command.php 命令行工具配置文件
│ ├─common.php 应用公共文件
│ ├─config.php 应用配置文件
│ ├─tags.php 应用行为扩展定义文件
│ ├─database.php 数据库配置文件
│ └─route.php 路由配置文件
手册-附录-助手函数
TP3.2中单字母对应TP5的助手函数
M->db() 方法变成了db
D->model() 方法变成 model
U ->url() 生成URL地址
I ->input() 接收视图传过来的数据
三种去视图的方法
namespace app\index\controller; //app是公共配置文件写好的
class Index
{
public function index()
{
return $this->fetch('index'); // 第一种去视图
return view('Stu/index', [ // 第二种 助手函数
'title' => '用户列表',
'list' => $list,
]);
redirect 重定向 $this->redirect('User/edit', ['id'=>'4'], 5); 可以带参数跳转第三种
}
}
CURD
查询
use think\Controller;
use think\Db;
public function index()
{
$list =Db::table('think_user')->where('id',1)->find(); // table方法必须指定完整的数据表名,DB模型类
- 查询数据集使用,如果设置了数据表前缀参数的话,可以使用name(),没设置则一样
$list =Db::table('think_user')->where('status',1)->select();
$list = Db::query('select * from user'); //原生
$list = db('user')->field(['id', 'name'])->select(); // 助手函数 不用导入BD类
Db::table('think_user')->where('id',1)->value('name');
查询某一列的值
Db::table('think_user')->where('status',1)->column('name');
插入
// $result = Db::execute('insert...'); //原生增删改都是execute
$data = [
'name' => 'k3',
'age' => '55'
];
// $result = Db::table('user')->insert($data); //使用DB模型类
// $result = Db::table('user')->insertGetId($data); //使用DB模型类
$result = db('user')->insert($data); // 助手函数 不用导入BD类
}
删除
public function delete()
{
// $result = Db::execute('delete....'); //原生
// $result = Db::table('user')->delete(63); //使用DB模型类
// $result = Db::table('user')->where('name','k3')->delete();
// $result = db('user')->delete(111); // 助手函数 不用导入BD类
}
更新
public function update()
{
// $result = Db::execute('update.....'); //原生
// $result = Db::table('user')->where('id',61)->update(['age'=>'99']); //使用DB模型类
$result = db('user')->where('id',61)->update(['age'=>'100']); // 助手函数 不用导入BD类
}