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

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($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()

还可以这样写

$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(

);

从数据库中获取数据

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.net/112280.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 什么是平均数,中位数,众数,方差_平均数标准差

    什么是平均数,中位数,众数,方差_平均数标准差Python代码实现第一步:添加数据到列表defnum(a):iffloat(a)==int(a):returnint(a)else:returnfloat(a)#添加数据li=[]print(&amp;amp;quot;请逐条添加数据!(若退出请输入0000)&amp;amp;quot;)whileTrue:print(&amp;amp;quot;请输入:&amp;amp;q

    2022年9月17日
  • Android studio开发-第一个入门例子(十分详细)

    Android studio开发-第一个入门例子(十分详细)                            举个栗子实现功能:可以通过页面输入改变要显示的字符,然后通过按钮可以实现显示字符的放大功能。最终如下:一共四个控件:一个text输入,一个text显示,一个输入修改确认按钮,一个放大按钮步骤:1、建立项目   file-new-newproject新建一个项目…

    2022年10月29日
  • 微信公众号之自定义菜单

    微信公众号之自定义菜单今天是“微信开发会客厅”栏目的第一期,我的微信自媒体“刘琪的商业观察”有幸请到了几位自定义菜单的“尝鲜者”,请他们谈谈对。 “订酒店”公众号负责人、快捷酒店管家产品经理朱坤的看法比较具有典型性,他表示:“如果说是惊喜还谈不上,毕竟微信团队的人太少了,而且事情非常多,所以开放和相关功能的开发肯定是慢慢来的。不过,这也传递了一个很重要的信号与信心,那就是,每个公号都会成为一个独立的具体

    2022年5月13日
  • sdut 3-7 类的友元函数的应用

    sdut 3-7 类的友元函数的应用

    2022年3月5日
  • 去除winrar广告

    去除winrar广告Winrar是试用版,软件的使用已超过试用期,需购买一个许可才可正常使用。本人告诉你只需简单几步,就能轻松破解Winrar,不需要花钱购买注册。方法:在文件夹选项中去除“隐藏已知文件类型的扩展名”,单击确定。在桌面上新建一个记事本打开将下面代码复制并保存为rarreg.key文件RARregistrationdataFederalAgencyforEduc

    2022年5月12日
  • jeesit1.27使用(2)-图片处理

    jeesit1.27使用(2)-图片处理 解决问题:字典使用使用对象:初级开发人员,项目时间紧张没有空钻研源码需要马上学会使用。1.配置表时选择文件上传。 2.生成代码,不敷述了 3.修改form.jsp代码 将type中的files改为images。4.修改list.jsp。…

    2022年11月2日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号