前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >CI框架与Thinkphp框架的一些区别

CI框架与Thinkphp框架的一些区别

作者头像
全栈程序员站长
发布2022-07-11 10:05:49
2.9K0
发布2022-07-11 10:05:49
举报

大家好,又见面了,我是全栈君。

初学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方法中

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(

在模板中关联数组健名就是模板里的变量名

<?php echo $hello; ?>

CI超级对象($this)中的装载器load

文件在system/core/loader.php,被实例化成一个属性

$this->load 属性是经常用到的,这里有几个常用的方法

$this->load->view()

$this->load->vars()

$this->load->database()

$this->load->model()

还可以这样写

$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’);//同

this->input->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(

);

从数据库中获取数据

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 );

}

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/112280.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年2月8,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档