加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网 (https://www.0791zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > PHP > 正文

CodeIgniter学习笔记一:基本结构、控制器、视图、超级对象、数据库

发布时间:2020-05-26 13:06:19 所属栏目:PHP 来源:互联网
导读:一、基本结构CodeIgniter3.0.0解压后有8个文件,分别是:application:项目文件system:系统(框架)文件,为方便升级,不建议修改user_guid:用户手册,不需要加入项目composer.json:composer配置文件,不需要加入项目contributing.md:如何参与项目贡献代码

一、基本结构

CodeIgniter3.0.0解压后有8个文件,分别是:

  • application:项目文件
  • system:系统(框架)文件,为方便升级,不建议修改
  • user_guid:用户手册,不需要加入项目
  • composer.json:composer配置文件,不需要加入项目
  • contributing.md:如何参与项目贡献代码,不需要加入项目
  • index.php:项目入口文件
  • license.txt:许可文件,不需要加入项目
  • readme.rst:说明文件,不需要加入项目

二、控制器Controller

控制器在application文件夹中的controllers文件夹中,默认控制器为welcome,有4小点需要注意:

1、控制器类名不需要加后缀

2、控制器文件名建议小写

3、控制器要直接或间接继承自CI_Controller类

4、可访问的action方法名不能以下划线开头,且访问权限要是public的

三、视图View

视图在application文件夹中的views文件夹中,几个tips:

1、在控制器中用如下代码加载views中的视图:

-> load -> view('user_index'<span style="color: #008000;">//<span style="color: #008000;">加载views/user文件夹中的index.php视图文件
<span style="color: #800080;">$this -> load -> view('user/index');

2、在视图中,可以直接使用原生的php代码

3、在控制器中可以通过以下方式向视图中输出变量:

'jim','books' => 'a','b','c','d' </span><span style="color: #800080;"&gt;$head</span> = <span style="color: #0000ff;"&gt;array</span><span style="color: #000000;"&gt;( </span>'title' => 'TITLE','subtitle' => 'SUB TITLE'<span style="color: #000000;"&gt; ); </span><span style="color: #800080;"&gt;$this</span> -> load -> vars('data',<span style="color: #800080;"&gt;$data</span><span style="color: #000000;"&gt;); </span><span style="color: #008000;"&gt;//</span><span style="color: #008000;"&gt;公共部分</span> <span style="color: #800080;"&gt;$this</span> -> load -> view('header'<span style="color: #000000;"&gt;); </span><span style="color: #800080;"&gt;$this</span> -> load -> view('user/index',<span style="color: #800080;"&gt;$head</span><span style="color: #000000;"&gt;); } }

?>

User

User

四、CI的超级对象

CI中的超级对象即为当前的控制器对象。在视图中也可以直接使用$this访问超级对象。

超级对象提供了很多属性:

1、$this -> load ,装载器,主要提供了如下方法:

  • view:装载视图
  • vars:分配变量到视图
  • database:装载数据库操作对象
  • model:装载模型
  • helper:加载帮助文件

2、$this -> uri,解析URL相关内容,主要提供如下方法:

  segment:按索引(控制器为1)获取分段url值(类pathinfo没有key的模式:入口.php/控制器/动作/参数1/参数2。。。),示例如下

  • </span><span style="color: #008000;"&gt;//</span><span style="color: #008000;"&gt;/index.php/user/index/id/abc/name/god</span> <span style="color: #0000ff;"&gt;public</span> <span style="color: #0000ff;"&gt;function</span> index(<span style="color: #800080;"&gt;$param1</span>,<span style="color: #800080;"&gt;$param2</span><span style="color: #000000;"&gt;) { </span><span style="color: #800080;"&gt;$param3</span> = <span style="color: #800080;"&gt;$this</span> -> uri -> segment(5<span style="color: #000000;"&gt;); </span><span style="color: #008080;"&gt;var_dump</span>(<span style="color: #0000ff;"&gt;array</span><span style="color: #000000;"&gt;( </span>'param1' => <span style="color: #800080;"&gt;$param1</span>,'param2' => <span style="color: #800080;"&gt;$param2</span>,'param3' => <span style="color: #800080;"&gt;$param3</span><span style="color: #000000;"&gt; )); </span><span style="color: #008000;"&gt;/*</span><span style="color: #008000;"&gt; array (size=3) 'param1' => string 'id' (length=2) 'param2' => string 'abc' (length=3) 'param3' => string 'name' (length=4) </span><span style="color: #008000;"&gt;*/</span> <span style="color: #800080;"&gt;$this</span> -> load -> view('user/index'<span style="color: #000000;"&gt;); } }

    ?>

3、$this -> input,主要用于取post和server数据,使用方法如下:

input -> post('username' = -> input -> server('REMOTE_ADDR' ; -> load -> view('user/index'?>

五、数据库操作

数据配置文件在 application/config/database.php 中。

1、查询示例

load -> view('user/index' </span><span style="color: #0000ff;"&gt;public</span> <span style="color: #0000ff;"&gt;function</span><span style="color: #000000;"&gt; showusers() { </span><span style="color: #800080;"&gt;$this</span> -> load -><span style="color: #000000;"&gt; database(); </span><span style="color: #800080;"&gt;$sql</span> = 'select * from ci_test'<span style="color: #000000;"&gt;; </span><span style="color: #800080;"&gt;$res</span> = <span style="color: #800080;"&gt;$this</span> -> db -> query(<span style="color: #800080;"&gt;$sql</span><span style="color: #000000;"&gt;); </span><span style="color: #800080;"&gt;$users</span> = <span style="color: #800080;"&gt;$res</span> -><span style="color: #000000;"&gt; result(); </span><span style="color: #008080;"&gt;var_dump</span>(<span style="color: #800080;"&gt;$users</span><span style="color: #000000;"&gt;); </span><span style="color: #008000;"&gt;/*</span><span style="color: #008000;"&gt; array (size=1) 0 => object(stdClass)[18] public 'id' => string '1' (length=1) public 'name' => string 'jim' (length=5) public 'title' => string 'ci learn' (length=8) </span><span style="color: #008000;"&gt;*/</span> <span style="color: #800080;"&gt;$users2</span> = <span style="color: #800080;"&gt;$res</span> -><span style="color: #000000;"&gt; result_array(); </span><span style="color: #008000;"&gt;/*</span><span style="color: #008000;"&gt; array (size=1) 0 => array (size=3) 'id' => string '1' (length=1) 'name' => string 'atwal' (length=5) 'title' => string 'ci learn' (length=8) </span><span style="color: #008000;"&gt;*/</span> <span style="color: #008080;"&gt;var_dump</span>(<span style="color: #800080;"&gt;$users2</span><span style="color: #000000;"&gt;); </span><span style="color: #800080;"&gt;$firstUser</span> = <span style="color: #800080;"&gt;$res</span> -><span style="color: #000000;"&gt; row(); </span><span style="color: #008080;"&gt;var_dump</span>(<span style="color: #800080;"&gt;$firstUser</span><span style="color: #000000;"&gt;); </span><span style="color: #008000;"&gt;/*</span><span style="color: #008000;"&gt; object(stdClass)[18] public 'id' => string '1' (length=1) public 'name' => string 'atwal' (length=5) public 'title' => string 'ci learn' (length=8) </span><span style="color: #008000;"&gt;*/</span> <span style="color: #800080;"&gt;$this</span> -> load -> view('user/show'<span style="color: #000000;"&gt;); } }

?>

load -> database()进行装载数据库,然后才能使用 $this -> db 对象。

(编辑:安卓应用网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读