CodeIgniter 中国开发者社区

标题: CodeIgniter 入门与简单应用 [打印本页]

作者: Hex    时间: 2007-10-15 13:24
标题: CodeIgniter 入门与简单应用
CodeIgniter 是基于 MVC 的一套 PHP 快速开发工具包,之后什么什么就不多说了,直接切入正题。
首先你先下载一套开发包在下面就有下载,解压缩之后你会看到一个 system 文件夹和一个 index.php 文件。
打开 system/application 你就可以看到 7 个文件夹下面着重介绍一下。
controllers(控制器)
views(视图)
models(模型)
统称 MVC
config(系统配置文件)

下面开始制作
在 system/application/controllers 新建一个 blog.php 文件
PHP复制代码
<?php
class Blog extends Controller
{
    function index()
    {
        echo "come blog";
    }
}
?>
 
复制代码

Blog 扩展 Controller 类。

问题:类函数为什么要为index()?
回答:index()类函数是默认执行的。
问题:如何指定自己的类函数?
回答:http://yourdomain/codeigniter/index.php/blog/ 这个地址是没有指定的
而如果是 http://yourdomain/codeigniter/index.php/blog/comment/ 这里表示指定了 comment() 类函数我们就可以这样写了:
PHP复制代码
<?php
class Blog extends Controller{
    function index(){
        echo "come blog";
    }
    function comment(){
        echo "blog comment!";
    }
}
?>
复制代码

那么这里页面显示的结果就是 blog comment 了
问题:如何带参数,可以带几个参数!
回答:首先说明的是可以带N个参数例如
PHP复制代码
<?php
    class Blog extends Controller{
        function index(){
            echo "come blog";
    }
    function comment($id,$cid,$vid){
        echo "blog comment!{$id}{$cid}{$vid}";
    }
}
?>
复制代码

用 http://yourdomain/codeigniter/index.php/blog/comment/1/12/123 地址访问那么结果就显示
blog comment 1,23,123
就这么简单就可以完成一个带参输出

有些同志问了,如果要显示在我设置的前台页面里呢?该如何做?
别急等我慢慢道来。

$this->load->view('blog');
这句话就是调用了 system/application/views/blog.php 模板文件了

以下是控制器中传数据到视图页面
例如控制器文件
PHP复制代码
<?php
class Blog extends Controller{
    function index(){
        $data = array('title' => '欢迎进入 http://codeigniter.org.cn',
                      'heading' => '欢迎',
                      'message' => 'http://codeigniter.org.cn');
        $this->load->view('blog', $data); //这里的 blog 是视图的名字,所以不需要写扩展名,$this->load->view('folder/blog', $data)这样是在 folder 文件夹里面的 blog.php 文件。
    }
}
?>
复制代码

视图文件
HTML复制代码
<html>
<head>
<title><?=$title?></title>
<head>
<body>
你好,<?=$heading?>进入<?=$message?>
</body>
</html>
复制代码

今天就说到这里了,同志们,有点了解了吧。
还有关于构造器,如果是 PHP4 的可以直接:
function blog()
如果是 PHP5 的写成:
function __construct()

如果想改默认首页请到 system/application/config/routes.php

找到

PHP复制代码
$route['default_controller'] = "welcome";
复制代码


把 welcome 改成你自己想默认的名字(不需要写.php)
作者: guangzhou    时间: 2007-10-16 00:38
如果能写一写分页显示的例子就好了。。
谢谢分享。:)
作者: Hex    时间: 2007-10-16 09:22
好的,没问题,等下写个发上来,呵呵!
作者: guangzhou    时间: 2007-10-17 23:13
我会等着你的分页的。嘿嘿。
觉得这个框架很好用,简单快速。
不久应该很火哦。
作者: Hex    时间: 2007-10-18 08:57
呵呵,我一直觉得她非常有潜力!
哈哈
作者: anvycn    时间: 2008-1-10 13:25
PHP复制代码
 
class blog extends Controller{
   function index(){
     echo "come blog";
   }
   function comment(){
     echo "blog comment!";
   }
}
 
复制代码

手册说,这个blog不能小写。。。。。。。。。

[ 本帖最后由 anvycn 于 2008-1-10 13:31 编辑 ]
作者: sam    时间: 2008-1-10 13:52
标题: 回复 6楼 的帖子
对。。要大写。。
作者: Hex    时间: 2008-1-10 14:28
我修改了,哈哈~
作者: 寂寞天涯    时间: 2008-1-12 17:48
很不错的框架,准备好好研究使用下,不过中文似乎还不全面
作者: xhq6632    时间: 2008-3-24 10:06
正在学习中……,期待更多人使用
作者: 浪迹天涯    时间: 2008-3-24 14:07
标题: 为什么?
<?php
class Blog extends Controller
{   
function index()   
{  echo "come blog";    }
}
?>
为什么我按照上面的这样写,可浏览器还是说找不到该网页?  安装都是按照手册里的
作者: Hex    时间: 2008-3-24 15:12
请报告你使用的 Web 服务器。还有 CI 版本。
作者: 浪迹天涯    时间: 2008-3-24 16:05
CI :1.6.1版本   Web 服务器:IIS v5.1
作者: xhq6632    时间: 2008-3-29 05:41
把代码修改成这样,再试哈!!!
PHP复制代码
 
<?php
class Blog extends Controller
{
function Blog()
{
   parent::Controller;
}  
function index()  
{  echo "come blog";    }
}
?>
 
 
复制代码

[ 本帖最后由 xhq6632 于 2008-3-29 05:43 编辑 ]
作者: Hex    时间: 2008-3-29 08:28
原帖由 浪迹天涯 于 2008-3-24 16:05 发表
CI :1.6.1版本   Web 服务器:IIS v5.1

基本可以判断是 IIS 的问题,换 Apache。
作者: 浪迹天涯    时间: 2008-3-31 03:46
谢谢Hex和xhq6632,Hex说的对,是IIS问题,现在问题解决了.:)
CI还没有全部翻译成中文?可惜我英语实在是太……   
作者: sam    时间: 2008-3-31 09:24
声明:基本都中文化了,个别英文不懂的话,就去查字典吧。。。。
作者: flyy    时间: 2008-4-9 15:10
是iis问题吗,那么说这个框架不能在iis上使用了?
作者: Hex    时间: 2008-4-9 15:13
楼上你不看论坛吗??
http://codeigniter.org.cn/forums/thread-415-1-1.html

我费尽翻译的,竟然没人看!!!!!!!!!!!!!!!!!!!
作者: flyy    时间: 2008-4-9 15:27
不好意思刚进论坛,没看到
作者: flyy    时间: 2008-4-9 15:30
原帖由 Hex 于 2008-3-29 08:28 发表

基本可以判断是 IIS 的问题,换 Apache。


您这么一说我还以为iis上运行不行
作者: Hex    时间: 2008-4-9 22:16
呵呵,别见怪,我开玩笑的~欢迎提问~~
作者: 3DFox    时间: 2008-4-17 16:22
标题: 今天第一天来混
今天第一天来混CI,感觉不错。是只潜力股~
作者: anson    时间: 2008-4-27 18:49
标题: 重新学习,兼复习!
重新学习,兼复习!努力向CI靠拢
作者: wolf432    时间: 2008-5-28 20:49
我今天也开始学CI了~~~~~
作者: luohailio    时间: 2008-6-5 16:20
感觉很不错
支持
由于英文很菜
所以期待更多的中文实例
作者: ttl_web    时间: 2008-9-29 15:58
已下载,
正在学习中。。。
谢谢
作者: 原味的夏天    时间: 2008-10-31 16:11
saw
作者: yaweja    时间: 2008-11-5 17:47
<html>
<head>
<title><?php =$title?></title>
<head>
<body>
你好,<?php=$heading?>进入<?php=$message?>
</body>
</html>


数据没传过去,怎么会事,前面的都对  只是显示   你好,进入

CI1.7  Win2003 +apache2

[ 本帖最后由 yaweja 于 2008-11-6 22:23 编辑 ]
作者: Hex    时间: 2008-11-5 21:35
你怎么 load 的 view ?贴出代码
作者: yaweja    时间: 2008-11-6 16:34
对了,我用
<html>
<head>
<title><?php echo $title?></title>
<head>
<body>
你好,<?php echo $heading?>进入<?php echo $message?>
</body>
</html>

显示了,谢谢版主哈

[ 本帖最后由 yaweja 于 2008-11-6 22:24 编辑 ]
作者: ciysnew    时间: 2009-5-13 17:27
学习了!
作者: dxlhs    时间: 2009-5-16 12:11
正在学习中……,期待更多人使用
作者: bingshao    时间: 2009-6-11 23:54
学习了几天ThinkPHP,搞得我头昏脑胀,就过来看看,感觉还行,学习起来的确是轻松了许多。努力钻研!
作者: basebase    时间: 2009-6-19 11:49
没理由不学这个了
作者: sanler    时间: 2009-6-20 19:00
很不错啊
作者: xjljoy    时间: 2009-6-23 23:34
感谢楼主,希望更多的人也像楼主这样慷慨授课。。。。
作者: fruitsdrink    时间: 2009-6-26 23:56
是不是文件名小写,类名首字母大写呀
作者: ewayfly    时间: 2009-6-28 10:24
喜欢上CI,喜欢上其简单实用。
做个中小型网站相当合适,开发速度快,维护管理方便!!
没做过较大的网站,不知道是否适合大型门户。
作者: xiaokai    时间: 2009-6-30 14:02
支持楼主,请问CI模板语法就是PHP语法吗?
作者: 18025176    时间: 2009-7-4 22:54
我打开
http://localhost/CI/system/application/controllers/blog.php

显示
Fatal error: Class 'Controller' not found in D:\AppServ\www\CI\system\application\controllers\blog.php on line 3

我装的AppServ
我是新手 刚接触MVC
作者: xiaokai    时间: 2009-7-4 23:22
好象不是这样访问的吧!

http://localhost/CI/index.php/blog/
这样就行了吧!
作者: 18025176    时间: 2009-7-5 15:04
照上面说的做显示:
Deprecated: Assigning the return value of new by reference is deprecated in D:\AppServ\www\CI\system\codeigniter\Common.php on line 130

Deprecated: Assigning the return value of new by reference is deprecated in D:\AppServ\www\CI\system\codeigniter\Common.php on line 136

Fatal error: Call to undefined function set_magic_quotes_runtime() in D:\AppServ\www\CI\system\codeigniter\CodeIgniter.php on line 60
作者: Hex    时间: 2009-7-5 23:37
43 楼,你的 PHP 版本太新了,请用 php 5.2 以下的
作者: zhangtao-5    时间: 2009-10-15 17:34
studying............
作者: zhangtao-5    时间: 2009-10-15 17:42
很好啊..............
作者: elileo    时间: 2009-10-17 11:51
努力学习,谢谢楼主了
作者: zhangtao-5    时间: 2009-12-8 11:43
他大爷的,这个问题我也遇到了。Fatal error: Class 'Controller' not found in C:\wamp\www\hzzf\system\application\controllers\welcome.php on line 3
以前还好好的,不晓得为什么会变成这样啊。不过我不管了。
作者: www.99n9.com    时间: 2009-12-18 11:09
冲着快速开发来到这里了.以后多多指教.
作者: langziyang    时间: 2010-3-15 15:18
这个比其它的看得明白多了
作者: lcbat    时间: 2010-3-19 11:01
很好  很强大的说。。。。。。。。。
作者: mouphon    时间: 2010-5-4 22:12
最后一个例子 不会 到底要怎样设置 有人能给详细点说明一下吗
作者: mengdejun    时间: 2010-5-5 13:28
CI自己写的控制器可以继承吗?
PHP复制代码
 
class A extends Controller{}
#####################
class B extends A{}#可以吗?
 
复制代码

作者: zhangkewang    时间: 2010-7-13 16:49
看了要顶
作者: xautchao    时间: 2010-8-13 14:38
算是看看懂入门了,接下来就是练手了
作者: k1060220963    时间: 2010-8-13 15:33
学习了,要是在发表点上传的实例就好了。还有验证码,图片添加水印。感谢楼主。
作者: qycard    时间: 2010-11-23 17:11
今晚也要练一下手了
作者: ekelai    时间: 2011-2-16 10:54
谢谢啦,受益不少
作者: jason_luo    时间: 2011-2-18 10:48
拜读,谢谢
作者: gqy2468    时间: 2011-2-25 14:09
这个例子简洁明了,很给力!
作者: 情感电子    时间: 2011-5-29 18:49
我也开始学习CI了,一起学习的朋友加我的QQ750981422,并说明是CI。谢谢大家。
作者: 甜蜜教主    时间: 2011-6-13 10:04
学习中。。。。
作者: 向左走向右走    时间: 2011-6-27 07:35
我在学习啊  呵呵
作者: luoxu_cool    时间: 2011-9-14 18:51
正在学习中
作者: NicholasWay    时间: 2011-9-29 10:20
还在入门中,多看实例进步中
作者: leehee    时间: 2011-10-15 13:53
还没有入门,看看。
作者: credochen    时间: 2011-10-23 20:55
学习中。感觉很不错!
作者: monlone    时间: 2011-11-15 09:48
本帖最后由 monlone 于 2011-11-15 09:58 编辑
18025176 发表于 2009-7-4 22:54
我打开
http://localhost/CI/system/application/controllers/blog.php

把Controller该为CI_Controller就好了。如下:
<?php
class blog extends CI_Controller{
        function index()
        {
                $data = array('title'=>'欢迎你',
                                          'heading' => 'lulu',
                                          'message' => 'www.xiaodoujiao.com'
                );
                $this->load->view("blog",$data);
        }
        function comment()
        {
                echo "blog comment!";
        }
}
?>

作者: 还城楼主    时间: 2011-12-15 11:01
感谢楼主的分享,简单易懂,非常谢谢了{:soso_e100:}
作者: lst0257    时间: 2011-12-25 20:08
没见到源文件呀
作者: り_偏执。    时间: 2012-3-6 14:37
我是个新手,正在用codeigniter,不知道她怎么在appserv上应用,在官方网站上看到一些教程 但不知道写到哪里,请高手详解

作者: cmb7d    时间: 2012-6-2 15:05
看了下,感觉很好
作者: 静静的滴水    时间: 2012-6-21 23:09
学习ing
作者: 死亡缠绕    时间: 2012-8-20 15:14
这些我看懂了,谢谢楼主
作者: longailili    时间: 2012-10-9 15:09
怎样 用 URL 段获取参数。新手学习还请各位指教!
作者: byhe    时间: 2014-3-21 14:14
今天终于看进去了
作者: 飞翔的小白菜    时间: 2014-12-16 15:57
页面跳转怎么弄  不清楚那




欢迎光临 CodeIgniter 中国开发者社区 (https://codeigniter.org.cn/forums/) X3.4