0

0

ci框架(一),ci框架(

php中文网

php中文网

发布时间:2016-06-13 09:29:20

|

4245人浏览过

|

来源于php中文网

原创

ci框架(一),ci框架(

ci目录结构                                                                                   

|-----system                框架程序目录  
    |-----core              框架的核心程序  
        |-----CodeIgniter.php   引导性文件  
        |-----Common.php    加载基类库的公共函数  
        |-----Controller.php    基控制器类文件:CI_Controller  
        |-----Model.php     基模型类文件:CI_Model  
        |-----Config.php    配置类文件:CI_Config  
        |-----Input.php     输入类文件:CI_Input  
        |-----Output.php    输出类文件:CI_Output  
        |-----URL.php       URL类文件:CI_URl  
        |-----Router.php    路由类文件:CI_Router  
        |-----Loader.php    加载类文件:CI_Loader  
    |-----helpers           辅助函数  
        |-----url_helper.php    url相关的辅助函数,如:创建url的辅助函数  
        |-----captcha_helper.php创建图形验证码的辅助函数  
    |-----libraries         通用类库  
        |-----Pagination.php    通用分页类库  
        |-----Upload.php    通用文件上传类库  
        |-----Image_lib.php 通用图像处理类库  
        |-----Session.php   通用session类库  
    |-----language          语言包  
    |-----database          数据库操作相关的程序  
        |-----DB_active_rec.php 快捷操作类文件(ActiveRecord)  
    |-----fonts             字库  
      
|-----application           项目目录  
    |-----core              项目的核心程序  
    |-----helpers           项目的辅助函数  
    |-----libraries         通用类库  
    |-----language          语言包  
    |-----config            项目相关的配置  
        |-----config.php    项目相关的配置文件     
        |-----database.php  数据库相关的配置文件  
        |-----autoload.php  设置自动加载类库的配置文件  
        |-----constants.php 常量配置文件  
        |-----routes.php    路由配置文件  
    |-----controllers       控制器目录  
        |-----welcome.php   控制器文件,继承CI_Controller  
    |-----models            模型目录  
        |-----welcome_model.php 模型文件,继承CI_Model  
    |-----views             视图目录  
        |-----welcome.php   视图模板文件,默认后缀名为.php  
    |-----cache             存放数据或模板的缓存文件  
    |-----errors            错误提示模板  
    |-----hooks             钩子,在不修改系统核心文件的基础上扩展系统功能  
    |-----third_party       第三方库  
    |-----logs              日志  
  
|-----index.php             入口文件

访问形式                                                                                     

在\application\controllers\welcome.php中添加函数:

public function hello()    
{    
    echo "test";   
}

入口文件.php/控制器/动作

自己新建控制器,hello.php:

if ( ! defined('BASEPATH')) exit('No direct script access allowed');

    class Hello extends CI_Controller 
    {
        public function sayHello($name)
        {
            echo $name,",Hello World";
        }
    }
?>

注意:

  • 方法名以下划线开头的是不能访问成功的,只能间接访问。
  • 只能访问public修饰的方法。
  • 尽量不要与类名相同的方法,会当作构造函数。

加载视图                                                                                    

application\views\view_test.php或者application\views\view\test.php(这中做法主要是方便同一类型的视图可以放在同一个文件夹下方便管理)

<html>
<head>
head>
<body>
test_ci_hello_world
body>
html>

控制器:

public function addView()
{
    $this->load->view("view_test");
}

或者:

public function addView2()
{
    $this->load->view("view/test");
}

效果:

分配变量                                                                                     

把数据从控制器中传到视图中,控制器:

public function addView()
        {
            $this->load->vars("title","value");
            $list = array(
            array('id'=>1,'name'=>'jack','email'=>'123@123.com'),
            array('id'=>2,'name'=>'jack2','email'=>'1233@123.com'),
            array('id'=>3,'name'=>'jack3','email'=>'12333@123.com')
            );
            $data['new_title']="标题";
            $data['list']=$list;
            $this->load->vars($data);
            
            $this->load->view("view_test");
        }

视图:


    
    
    
        

echo $title;?>

echo $new_title;?>

test_ci_hello_world foreach($listas$item):?> endforeach;?>
$item['id']?> $item['name']?> $item['email']?>

效果:

public function addView() { $this->load->vars("title","value"); $list = array( array('id'=>1,'name'=>'jack','email'=>'123@123.com'), array('id'=>2,'name'=>'jack2','email'=>'1233@123.com'), array('id'=>3,'name'=>'jack3','email'=>'12333@123.com') ); $data['new_title']="标题"; $data['list']=$list; $this->load->vars($data); $this->load->view("view_test"); $this->load->view("footer"); }

视图view_test:

Phidata
Phidata

Phidata是一个开源框架,可以快速构建和部署AI智能体应用

下载

    
    
    
        

echo $title;?>

echo $new_title;?>

test_ci_hello_world foreach($listas$item):?> endforeach;?>
$item['id']?> $item['name']?> $item['email']?>

视图footer:

CI_hello_world!!!
body>
html>

显示效果:

uri参数获取                                                                                

控制器:

public function getUri($id,$name,$year)
        {
            echo "id--->".$id."---name--->".$name."---year--->".$year."
"; echo "segment(1)--->".$this->uri->segment(1)."
"; echo "segment(2)--->".$this->uri->segment(2)."
"; echo "segment(3)--->".$this->uri->segment(3)."
"; echo "segment(4)--->".$this->uri->segment(4)."
"; echo "segment(5)--->".$this->uri->segment(5)."
"; }

效果:

加载数据库                                                                                 

这个操作在MVC中是放到model中做的。

在\application\config\database.php中配置数据库参数,注意dbprefixswap_pre这两个参数。在php中写的是前缀,会默认当作swap_pre,然后放到数据库中的时候会转成dbprefix,但是最好两个都弄成一样的。

还有$active_group,默认是default,如果要连接两个数据库,把default另外取名,然后在函数中写明参数就OK。

必须继承数据核心类CI_Model,同时重载父类中的构造方法。

class Model_name extends CI_Model
{
    function __construct()
    {
        parent::__construct();
    }
}

在每次使用数据库的时候,都需要加载一次数据库:

$this->load->database();

为了方便,可以将数据库的加载设置成自动加载,在\application\config\autoload.php中。

$autoload['libraries'] = array('database');

对于数据库访问对象,装载到超级对象的属性中 $this->db

$res = $this->db->query($sql);//返回对象
$res->result();//返回数组,数组中是一个一个的对象
$res->result_array();//返回二维数组,里面是关联数组
$res->row();//返回第一条数据,直接是一个对象

AR操作数据库                                                                              

在database.php文件中,将$active_recoed的值改为TRUE,这样就可以使用AR了。

//查询
public function index()
{
    $res = $this->db->get('表名');//这里自动调用前缀
    foreach($res->result() as $item)
    {
        echo $item->name."
"; } }
//插入
public function index()
{
    $data=array(
        'name'=>'lisi',
        'password'=>md5('lisi')
    );
    $bool = $this->db->insert("表名",$data);
    var_dump($bool);
}
//更新
public function index()
{
    $data=array(
        'name'=>'wangwu',
        'password'=>md5('wangwu')
    );

    $bool = $this->db->update('表名',$data,array('id'=>3));
    var_dump($bool);
}
//删除
$bool = $this->db->delete('表名',array('id'=>2));
var_dump($bool);

新手助PHP 程序 CI框架开发 进来看一眼吧

常规的方法是ul嵌套,即主菜单ul-li里嵌套子菜单ul,要用到两级循环
首先循环主菜单,要有固定的条件来判断出主菜单,比如主菜单的uid==0或者其它。。。


  • 栏目名称
    if($news_item['uid'] == 0){ //判断并得到主菜单

    echo "
  • ".$news_item['title'] . '
      ';
      foreach ($news as $child_item): //循环二次
      if($news_item['id'] == $child_item['uid']){ //判断并得到对应子菜单
      echo "
    • "."ss".$child_item['title']."";
      }
      endforeach;
      echo "";
      }

      endforeach; ?>


      当然这仅限于两级菜单,多级或无限极,可以使用函数递归
      function menu($uid=0){ //设置缺省从主菜单开始
      global $news;
      foreach ($news as $news_item):

      if($news_item['uid'] == $uid){

      echo "
    • ".$news_item['title'] . '
        ';
        menu($news_item['id']); //递归调用

        echo "";
        }

        endforeach;

        }
        ------ 调用方法 ------------------------------
          >
           

          CI框架想创建一个model类继承CI_Modle,我创建在app/core/MY_Model,直接报错了

          难道MY_Controller不要类名一致?
           

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
php源码安装教程大全
php源码安装教程大全

本专题整合了php源码安装教程,阅读专题下面的文章了解更多详细内容。

65

2025.12.31

php网站源码教程大全
php网站源码教程大全

本专题整合了php网站源码相关教程,阅读专题下面的文章了解更多详细内容。

43

2025.12.31

视频文件格式
视频文件格式

本专题整合了视频文件格式相关内容,阅读专题下面的文章了解更多详细内容。

35

2025.12.31

不受国内限制的浏览器大全
不受国内限制的浏览器大全

想找真正自由、无限制的上网体验?本合集精选2025年最开放、隐私强、访问无阻的浏览器App,涵盖Tor、Brave、Via、X浏览器、Mullvad等高自由度工具。支持自定义搜索引擎、广告拦截、隐身模式及全球网站无障碍访问,部分更具备防追踪、去谷歌化、双内核切换等高级功能。无论日常浏览、隐私保护还是突破地域限制,总有一款适合你!

41

2025.12.31

出现404解决方法大全
出现404解决方法大全

本专题整合了404错误解决方法大全,阅读专题下面的文章了解更多详细内容。

204

2025.12.31

html5怎么播放视频
html5怎么播放视频

想让网页流畅播放视频?本合集详解HTML5视频播放核心方法!涵盖<video>标签基础用法、多格式兼容(MP4/WebM/OGV)、自定义播放控件、响应式适配及常见浏览器兼容问题解决方案。无需插件,纯前端实现高清视频嵌入,助你快速打造现代化网页视频体验。

9

2025.12.31

关闭win10系统自动更新教程大全
关闭win10系统自动更新教程大全

本专题整合了关闭win10系统自动更新教程大全,阅读专题下面的文章了解更多详细内容。

8

2025.12.31

阻止电脑自动安装软件教程
阻止电脑自动安装软件教程

本专题整合了阻止电脑自动安装软件教程,阅读专题下面的文章了解更多详细教程。

3

2025.12.31

html5怎么使用
html5怎么使用

想快速上手HTML5开发?本合集为你整理最实用的HTML5使用指南!涵盖HTML5基础语法、主流框架(如Bootstrap、Vue、React)集成方法,以及无需安装、直接在线编辑运行的平台推荐(如CodePen、JSFiddle)。无论你是新手还是进阶开发者,都能轻松掌握HTML5网页制作、响应式布局与交互功能开发,零配置开启高效前端编程之旅!

2

2025.12.31

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 6.4万人学习

Django 教程
Django 教程

共28课时 | 2.6万人学习

React 教程
React 教程

共58课时 | 3.2万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号