CI框架与Thinkphp框架的一些区别
system 是框架核心
application 是项目目录
index.php 是项目入口文件
其他目录可以删除
控制器命名规则
控制器不加 Controller 后缀,
如 user.php 这就是一个控制器
修改默认控制器和方法
默认控制器是welcome.php,不喜欢可以改掉。
修改方法如下:
在 config/routes.php 中
$route['default_controller'] = 'welcome';
改为
$route['default_controller'] = 'index/home';
为什么不该成“index/index”呢???
因为CI中的控制器命名中没有后缀,所以index类的index方法会默认为析构方法__construct();
所以不可以这样搞,如果改成"index/index"则index方法会被调用两次。
加载视图文件
$this->load->view('index/home');
这个视图文件放在/application/view/index/home.php
看到这个文件的后缀了吗?它是一个php文件,不是html文件
在CI中 view() 方法可以使用多次,也就是可以加载多个模板
可以这样写:
1.在 /application/view/index目录下有这样几个模板文件
header.php
main.php
footer.php
2.在index控制器的home方法中
|
1
2
3
4
5
6
|
public function home(){ //按顺序加载模板文件 $this->load->view('index/header'); $this->load->view('index/main'); $this->load->view('index/footer');} |
给模板分配变量
CI框架中的模板是直接写php代码的,如分配一个hello的变量:
$this->load->vars('hello','heheheh');
在模板中直接写 <?php echo $hello;?>变量将变量输出。
还可以这样:
$data['hello'] = 'hello xxoo---';
直接写入关联数组
$this->load->vars($data);
在模板中关联数组健名就是模板里的变量名
<?php echo $hello; ?>
CI超级对象($this)中的装载器load
文件在system/core/loader.php,被实例化成一个属性
$this->load 属性是经常用到的,这里有几个常用的方法
$this->load->view()
$this->load->vars()
$this->load->database()
$this->load->model()
还可以这样写
|
1
2
3
4
|
$data['one'] = 'one';$data['two'] = array(1,2,3,4,5);//加载模板并分配变量$this->load->view('user/user',$data); |
获取url中的参数$this->uri
文件在system/core/URI.php
如:url为 localhost/CodeIgniter/index.php/index/home
echo $this->uri->segment(1);
输出为:index
还可以这样
url为:http://localhost/CodeIgniter/index.php/index/home/1
public function home($id){
echo $id;
}
输出 1
多个参数同样,只不过顺序有限制
输入对象 $this->input
类文件目录同上
$this->input->post('username');//同$_POST['username'];
$this->input->server('HTTP_REFERER');//同$_SERVER[HTTP_REFERER'']
$this在视图中也可以使用
关于数据库的操作
pdo设置
在application/config/database.php 中找到并填写成如下:
$db['default'] = array(
'dsn'=> 'mysql:host=localhost;dbname=test;port=3306',
'hostname' => '',
'username' => 'root',
'password' => '123456',
'database' => '',
'dbdriver' => 'pdo',
);
// 设置默认加载的数据库的配置
$active_group = 'default';
$query_builder = TRUE;
// 这个数组可以有多个,不同数据库填写不同数组名称
$db['default'] = array(
);
$db['hello'] = array(
);
从数据库中获取数据
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
public function home(){ // 1.转载数据库操作类 $this->load->database('default');//默认为default可以不写 $sql = "select id,title from article limit 10"; // 2.执行sql $obj = $this->db->query($sql); // 3.获取结果集 $data = $obj->result(); echo "<pre>"; var_dump($data); } |
CI框架与Thinkphp框架的一些区别的更多相关文章
- [麦先生]初学Laravel框架与ThinkPHP框架的不同(2)
在经过了一段时间的开发后,我对Laravel框架的认识又在逐步的加深,对于这个世界占有量NO.1的框架... 我想说,我已经在逐步的感受到他的恐怖之处... 一.建表--Laravel在数据库建表上 ...
- 初学Laravel框架与ThinkPHP框架的不同
作为一个PHP菜鸟初学Laravel框架 在学习过程中我发现了其与TP框架的不同点,由于时间问题和认识还不够完善我先写出其中几点,有错误的地方希望各位大牛斧正... 1.渲染模版方式的不同:在Lara ...
- Laravel框架与ThinkPHP框架的不同
作为一个PHP菜鸟初学Laravel框架 在学习过程中我发现了其与TP框架的不同点,由于时间问题和认识还不够完善我先写出其中几点,有错误的地方希望各位大牛斧正... 1.渲染模版方式的不同:在Lara ...
- ThinkPHP框架知识
php框架 一.真实项目开发步骤: 多人同时开发项目,协作开发项目.分工合理.效率有提高(代码风格不一样.分工不好) 测试阶段 上线运行 对项目进行维护.修改.升级(单个人维护项目,十分困难,代码风格 ...
- ThinkPHP框架知识(比较全的知识)
php框架 一.真实项目开发步骤: 多人同时开发项目,协作开发项目.分工合理.效率有提高(代码风格不一样.分工不好) 测试阶段 上线运行 对项目进行维护.修改.升级(单个人维护项目,十分困难,代码风格 ...
- ThinkPHP框架概述
框架概述 1.什么是框架 框架,即framework.其实就是某种应用的半成品,就是一组组件,供你选用完成你自己的系统. 2.框架的应用场景 ① 代码重用 ② 合理分工 ③ 解决团队协作开发问题 3. ...
- 【PHP ThinkPHP框架】小bug汇总[更新]
目录结构 1.函数调用 2.绑定select下拉框数据 3.PHP查询功能 4.格式化时间和价钱 5.IF标签比较两个变量 6.eq标签比较两个变量 7.新增信息或者修改信息的自动验证和自动填充 8. ...
- Thinkphp 框架基础
ThinkPHP 一.php框架介绍 真实项目开发步骤: 多人同时开发项目,协作开发项目.分工合理.效率有提高(代码风格不一样.分工不好) 测试阶段 上线运行 对项目进行维护.修改.升级(单个人维护项 ...
- ThinkPHP框架一
1.1 框架的概念 框架其实就是可重用代码的集合,框架的代码是框架架构的代码,不是业务逻辑代码,框架代码保护类.方法.函数等等,框架代码按照一定的规则组合起来就形成了框架. 1.2 不使用框架开发的时 ...
随机推荐
- linux开启swap(磁盘缓存)操作
转载 2014年04月26日 14:41:15 4470 由于工作需要,要帮助同事查看linux服务器的缓存开启情况,经过查找资料,可确定通过以下方法确定Linux磁盘缓存是否已开启. 1.命令行下执 ...
- MySQL的备份和恢复-基于LVM快照的备份(lvm-snapshot)
MySQL的备份和恢复-基于LVM快照的备份(lvm-snapshot) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.什么是快照卷 如上图所示,原卷和快照卷可以不一样大,因为 ...
- Spark记录-Scala变量/访问修饰符/运算符
变量是保存存储值的内存位置的名称.这意味着当创建变量时,可以在内存中保留一些空间. 根据变量的数据类型,编译器分配内存并决定可以存储在预留内存中的内容.因此,通过为变量分配不同的数据类型,可以在这些变 ...
- SpringMVC关于ajax提交400错误(后台获取为null)
400错误有三种情况 1:请求的数据量过大,不过这种情况一般很少见. 2:请求的data参数有误,确保每一个参数都能请求到. 注释:之前小白出现400错误,后台获取参数为null是因为第三种情况,经过 ...
- VMware Linux 下 Nginx 安装配置 - nginx.conf 配置 [负载两个 Tomcat] (三)
首先启动Nginx 1. 相关浏览 两个 Tomcat 配置: VMware Linux 下 Nginx 安装配置 - Tomcat 配置 (二) Nginx 安装配置启动: VMware Linu ...
- 20155233 2016-2017-2 《Java程序设计》第5周学习总结
20155233 2016-2017-2 <Java程序设计>第5周学习总结 学习目标 理解异常架构 牚握try...catch...finally处理异常的方法 会用throw,thro ...
- google浏览器测试时清理缓存、强制不用缓存刷新快捷键(常用、效率)
Ctrl+Shift+Del 清除Google浏览器缓存的快捷键 Ctrl+Shift+R 重新加载当前网页而不使用缓存内容
- requests(三):json请求中中文乱码处理
最近收到一个问题:json格式请求数据中有中文,导致服务端签名失败. 问题详情: 一位同学在发送json格式的post请求时,请求数据中有中文内容: {"inputCodes":[ ...
- linux(CentOS7)中安装erlang(20.3)以及rabbitmq(3.7.9)的步骤以及一些注意事项
首先下载安装包,之后先安装erlang,安装erlang需要很多依赖,所以一步步来: 首先 wxWidgets会报错,这个不是必须的,可以不安装,不影响 然后需要安装一些必须的依赖: yum inst ...
- 恶意代码分析实战-确认EXE什么时候编译的
场景 确认开源的后门在中毒机器上是什么版本,具有什么功能. 思路 1.查看样本PE里的编译时间 2.对照开源后门里组件的编译时间 技术点 查看NT头-TimeDateStamp struct IMAG ...