零基础入门CodeIgniter避坑指南【实用】

冬伟大大_7937

冬伟大大_7937

2026-08-09

896人浏览

原创

先让欢迎页亮起来:ci 3.x放htdocs/myapp并访问localhost/myapp,ci 4.x入口在public/需访问localhost/myapp/public;php版本必须匹配(ci3需5.6–7.4,ci4需8.0+);base_url须带尾斜杠;数据库用utf8mb4;多语言路由须显式定义且置于通配符之前。

零基础入门codeigniter避坑指南【实用】

想用CodeIgniter搭个能跑起来的PHP网站,却卡在解压后打不开欢迎页、改完配置还是404、数据库连不上报错——这篇指南只讲你动手时真正会踩的坑,从解压那一刻开始,每一步都标出错误高发点。

环境启动阶段:先让欢迎页亮起来

下载CI 4.5.3(当前最新稳定版)或CI 3.1.13,解压后【必须放在Web根目录下,例如XAMPP的htdocs/myapp或/var/www/html/myapp】,桌面或文档目录里双击打开毫无意义。

访问 http://localhost/myapp/ ——如果看到空白页或500错误,【90%是PHP版本不匹配】:CI 3.x仅支持PHP 5.6–7.4,CI 4.x最低需PHP 8.0,别用PHP 8.3+硬跑CI 3。

CI 4用户注意:入口文件index.php不在项目根目录,而在public/子目录里。浏览器地址必须写成 http://localhost/myapp/public/,否则必然404且错误提示不明确。

CI 3用户直接访问 http://localhost/myapp/ 即可,但要立刻修改 application/config/config.php 中的 $config['base_url'],填入完整URL并带末尾斜杠,例如 $config['base_url'] = 'http://localhost/myapp/';——漏掉会导致CSS/JS全挂、链接跳转失效。

MVC通路验证:控制器到视图不能断

方法一:静态页面输出(最简验证)
在 application/controllers/ 下新建 Home.php:

<?php defined('BASEPATH') OR exit('No direct script access allowed');<br>class Home extends CI_Controller {<br>    public function index() {<br>        $this->load->view('home_view');<br>    }<br>}

再在 application/views/ 下建 home_view.php,写 <h1>Hello from CI!</h1>
访问 http://localhost/myapp/index.php/home,能看到标题才算控制器→视图链路打通。

方法二:动态传值(后续所有页面依赖此步)
改 Home.php 的 index() 方法:

$data['title'] = '我的首条新闻';<br>$data['content'] = '这是正文内容,发布于'.date('Y-m-d');<br>$this->load->view('home_view', $data);

对应 home_view.php 里写 <h2>= $title ?></h2> <p>= $content ?></p><div class="aritcle_card flexRow artxards"> <div class="artcardd flexRow"> <a class="aritcle_card_img" rel="nofollow" href="/xiazai/gongju/2515" title="CodeIgniter 4.7.0"><img src="https://img.php.cn/upload/manual/001/503/042/6a6b043218cde750.png" alt="CodeIgniter 4.7.0" onerror="this.onerror='';this.src='/static/lhimages/moren/morentu.png'" ></a> <div class="aritcle_card_info flexColumn"> <a rel="nofollow" href="/xiazai/gongju/2515" title="CodeIgniter 4.7.0" class="overflowclass">CodeIgniter 4.7.0</a> <p class="overflowclass">CodeIgniter下载页提供 CodeIgniter 4.7.0 官方源码包,并整理框架安装、数据库配置与入门开发说明。</p> </div> <a rel="nofollow" href="/xiazai/gongju/2515" title="CodeIgniter 4.7.0" class="aritcle_card_btn flexRow flexcenter"><b></b><span>下载</span> </a> </div> </div>
这步不做,后面所有带变量的页面都会变白板——框架不会自动帮你提取数组键名当变量名。

数据库连通实操:从创建库到查出数据

第一步:确认MySQL服务已运行,用phpMyAdmin或命令行创建名为 ci_demo 的数据库,字符集选 utf8mb4,排序规则选 utf8mb4_unicode_ci——用latin1或utf8会存中文乱码,且后期无法回退修复。

第二步:编辑 application/config/database.php(CI 3)或 app/Config/Database.php(CI 4),填入本地凭证:
'hostname' => 'localhost',
'username' => 'root',
'password' => '',
'database' => 'ci_demo',
'dbdriver' => 'mysqli'。

第三步:在控制器里加一行测试代码:
print_r($this->db->list_tables());
放在 index() 方法里,访问页面若输出空数组或报错,说明连接失败;若输出表名列表,证明数据库已通。

多语言路由避坑:/zh/home 不是默认就能用的

CodeIgniter 4 不会自动识别 /zh/home 中的 zh 是语言码——它只当普通URI段处理。没在 Routes.php 里明确定义,就直接404。

方法一:显式注册每条语言路由(推荐新手)
在 app/Config/Routes.php 中添加:

$routes->get('/zh/home', 'Home::index');<br>$routes->get('/en/home', 'Home::index');<br>$routes->get('/zh/about', 'Page::about');<br>$routes->get('/en/about', 'Page::about');

【所有带语言前缀的路由必须放在通配符路由之前】,比如 $routes->get('(:any)', 'Fallback::handle'); 这类规则必须写在最后,否则 /zh/home 会被通配符吃掉,语言参数根本传不到业务逻辑里。

方法二:手动提取语言参数
加一条高优先级路由:
$routes->get('/(:any)/(:any)', 'LanguageRouter::route/$1/$2');
然后在 app/Controllers/LanguageRouter.php 中解析 $1(语言码)、$2(路径),再转发调用真实控制器——这需要你自行实现分发逻辑,新手慎用。

切记:CI4默认禁用自动路由,即使控制器方法写成 public function index(string $lang = 'zh'),框架也不会从URL自动注入 $lang 参数。必须在路由定义中显式传参,例如 $routes->get('/zh/contact', 'Contact::show/zh');,同时确保 Contact.php 的 show() 方法签名接收该参数。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

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

相关专题

更多
PHP CodeIgniter框架
PHP CodeIgniter框架

本专题专注于 PHP 轻量级框架 CodeIgniter 的学习与应用,系统讲解 MVC 模型、路由与控制器、数据库操作、表单验证、安全机制以及 REST API 开发。通过博客系统、内容管理平台和小型电商等实战项目,帮助学员快速掌握 CodeIgniter 的开发方法与实践技能。

2025.08.28

3239

16

Aionclaw智能助手介绍
Aionclaw智能助手介绍

本专题汇总了AionClaw(AI龙虾助手)的功能介绍与在线使用入口。AionClaw是杭州趣猿人工智能有限公司推出的桌面级AI智能体,能直接在电脑上读写文件、运行脚本、操作浏览器,自动交付Word、PPT、Excel等成品。

2026.09.20

20

13

AionClaw AI智能体与电脑自动化任务执行功能使用教程
AionClaw AI智能体与电脑自动化任务执行功能使用教程

AionClaw专题整理AI智能体与电脑自动化相关功能使用教程,涵盖安装部署、AI任务执行、Skills技能、文件处理、浏览器控制、电脑操作、持久记忆、聊天工具连接以及办公、编程和内容创作等功能,帮助用户快速掌握AionClaw的实际使用方法。

2026.09.20

0

15

AI视频生成软件推荐
AI视频生成软件推荐

本专题汇总了当前主流的AI视频生成软件推荐与排行榜单,涵盖seko、AniShort、剧云、Lovart、LiblibAI及立刻mv等热门工具。同时整理了各软件在文生视频、图生视频、时长限制、画质表现及免费额度等方面的差异对比,助您快速选对适合创作需求的AI视频生成工具。

2026.09.16

180

9

ai生成视频的工具免费版合集
ai生成视频的工具免费版合集

本专题汇总了当前免费AI生成视频工具的排行榜与推荐清单,涵盖seko、讯飞智作、AniShort及剧云、Lovart等多模型集成平台。同时整理了各工具的免费额度、输出时长、水印政策及适用场景差异,助您快速选择合适工具开启AI视频创作。

2026.09.16

100

10

Pandas时间序列分析与可视化报表
Pandas时间序列分析与可视化报表

本专题整理Pandas日期转换、时间索引、重采样、滚动窗口、时区处理、plot绘图、Styler表格样式和报表输出方法。

2026.09.16

80

23

Pandas数据筛选索引与清洗处理
Pandas数据筛选索引与清洗处理

本专题整理Pandas中的loc、iloc、条件筛选、query查询、缺失值处理、重复值删除、类型转换和字符串列清洗方法。

2026.09.16

60

25

Pandas数据读取导入与文件导出处理
Pandas数据读取导入与文件导出处理

本专题整理Pandas读取CSV、Excel、JSON、SQL、Parquet等文件的方法,以及to_csv、to_excel、to_sql和to_parquet等常用数据导出流程。

2026.09.16

40

27

GDB怎么设置断点
GDB怎么设置断点

本专题介绍GDB按照函数名、源代码行号和文件位置设置断点的方法,详细说明run、continue、next、step等命令的配合使用,帮助定位程序崩溃、逻辑异常及代码未按预期执行的问题。

2026.09.11

380

28

热门下载

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

精品课程

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