codeigniter 2 项目怎样做2级导航

项目从Codeigniter2.2升级至Codeigniter3.0的一些注意事项 - 王朝网络 -
分享&&&&&当前位置: &&&&&&&&项目从Codeigniter2.2升级至Codeigniter3.0的一些注意事项&&&  1. 替换掉system目录下所有的文件和文件夹,以及替换掉index.php  2. controllers和models中的文件首字母都需要改成大写:application.php -& Application.php, m_application.php -& M_application.php  3. 替换掉config/mimes.php  4. 把$auto_load['core']从config/autoload.php里移除  5.session库的使用有了较大改变:项目里主要就是修改了unset_user_data函数   //Old$this-&session-&unset_userdata(array('item' =& '', 'item2' =& ''));//New$this-&session-&unset_userdata(array('item', 'item2'));  6. 更新config/database.php文件  $active_group= 'default';//$active_record = TRUE;$query_builder=TRUE;//$db['default']['dbdriver'] = 'MySQL';$db['default']['dbdriver'] = 'mysqli';  7. 把CI3.0 views文件夹下的errors文件夹复制到项目的views文件夹下  8. 更新config/routes.php文件,CI3.0中(:any)不包括'/'  (.+)//matches ANYTHING(:any)//matches any character, except for '/'  更多信息请查看:/user_guide/installation/upgrade_300.html&&&&&今日推荐
&&&&&乌梅,又称春梅,中医认为,乌梅味酸,性温,无毒,具有安心、除热、下气、祛痰、止渴调中、杀虫的功效,治肢体痛、肺痨病。乌梅泡水喝能治伤寒烦热、止吐泻,与干姜一起制...什么是脂肪粒
在我们的脸上总会长一个个像脂肪的小颗粒,弄也弄不掉,而且颜色还是白白的。它既不是粉刺也不是其他的任何痘痘,它就是脂肪粒。
脂肪粒虽然也是由油脂...来源:中国青年报
新的攻击方法不断涌现,黑客几乎永远占据网络攻击的上风,我们不可能通过技术手段杜绝网络攻击。国家安全保障的主要方向是打击犯罪,而不是处置和惩罚...夫妻网络直播“造人”爆红
  1月9日,温岭城北派出所接到南京警方的协查通告,他们近期打掉了一个涉黄直播APP平台。而根据掌握的线索,其中有一对涉案的夫妻主播...如何防止墙纸老化?
(1)选择透气性好的墙纸
市场上墙纸的材质分无纺布的、木纤维的、PVC的、玻璃纤维基材的、布面的等,相对而言,PVC材质的墙纸最不透气...观点一:破日本销售量的“鲜肌之谜” 非日本生产
近一段时间,淘宝上架了一款名为“鲜肌之谜的” 鲑鱼卵巢美容液,号称是最近日本的一款推出的全新护肤品,产品本身所...系腰裙(北宋词人 张先)
惜霜蟾照夜云天,朦胧影、画勾阑。人情纵似长情月,算一年年。又能得、几番圆。
欲寄西江题叶字,流不到、五亭前。东池始有荷新绿,尚小如...关于女人的经典语句1、【做一个独立的女人】
思想独立:有主见、有自己的人生观、价值观。有上进心,永远不放弃自己的理想,做一份自己喜爱的事业,拥有快乐和成就...你想体验机器人性爱吗?你想和性爱机器人结婚吗?如果你想,机器人有拒绝你的权利吗?
近日,第二届“国际人类-机器人性爱研讨会”大会在伦敦金史密斯大学落下帷幕。而...10.土耳其地下洞穴城市
变态指数:★★☆☆☆
这是土耳其卡帕多西亚的一个著名景点,传说是当年基督教徒们为了躲避战争而在此修建。里面曾住着20000人,......据英国《每日快报》报道,一位科学家兼理论家Robert Lanza博士宣称,世界上并不存在人类死亡,死亡的只是身体。他认为我们的意识借助我们体内的能量生存,而且...《我爱狐狸精》 - 刘馨棋
  (电视剧《屏里狐》主题曲)
  作词:金十三&李旦
  作曲:刘嘉
  狐狸精 狐狸仙
  千年修... under pass
自由人非常擅长传球和垫球。
The libero is very go...美女学霸贝微微,立志成为游戏工程师,化名“芦苇微微”跻身网游高手,因拒绝上传真实照片而惨遭侠侣“真水无香”无情抛弃,却意外得到江湖第一高手信肖奈的垂青。为了赢得...目前,研究人员最新设计一款现实版“牵引波束”,可在太空中使用光线捕获物体。
物理学家指出,这种牵引波束可以使用光束捕获和推动物体,移动1厘米的距离。如果未来升...腾讯科学讯 据英国每日邮报报道,未来一种微型思想控制的纳米机器人可以植入人体,通过医师的思维控制药物的送递,从而起到治疗疾病的完美效果。目前,科学家首次使用思想...Kara Zor-El生于氪星球(planet Krypton),多年前星球毁灭的时候她逃到地球来,一直隐藏自己的超能力。如今24岁,Kara觉得不能使用与生俱...据英国每日邮报报道,科幻电影中曾出现过一些人类与机器人发生性行为的剧情,目前最新一项调查统计显示,28%受调者认为机器人性爱将是一个刺激的新体验。同时,专家分析...目前,空中巴士公司最新设计一款“自动飞行巴士”,有望解决城市交通问题,预计这款“飞行巴士”将于2017年首次试飞。据悉,该飞行器被称为“城市空中巴士”,图中是艺...·&·&·&&&&&&1. 替换掉system目录下所有的文件和文件夹,以及替换掉index.php
2. controllers和models中的文件首字母都需要改成大写:application.php -& Application.php, m_application.php -& M_application.php
3. 替换掉config/mimes.php
4. 把$auto_load['core']从config/autoload.php里移除
5.session库的使用有了较大改变:项目里主要就是修改了unset_user_data函数
//Old$this-&session-&unset_userdata(array('item' =& '', 'item2' =& ''));//New$this-&session-&unset_userdata(array('item', 'item2'));
6. 更新config/database.php文件
$active_group= 'default';//$active_record = TRUE;$query_builder=TRUE;//$db['default']['dbdriver'] = 'MySQL';$db['default']['dbdriver'] = 'mysqli';
7. 把CI3.0 views文件夹下的errors文件夹复制到项目的views文件夹下
8. 更新config/routes.php文件,CI3.0中(:any)不包括'/'
(.+)//matches ANYTHING(:any)//matches any character, except for '/'
更多信息请查看:/user_guide/installation/upgrade_300.html&&&&&  免责声明:本文仅代表作者个人观点,与王朝网络无关。王朝网络登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。&&&&&&为你推荐&&&&&&转载本文&UBB代码&HTML代码复制到剪贴板...&更多内容··········&&&&&&&&&频道精选&&&王朝女性&&|&&|&&|&&|&&|&&|&&|&&|&&|&&|&&|&&|&王朝分栏&&|&&|&&|&&|&&|&&|&&|&&|&&|&&|&王朝编程&&|&&|&&|&&|&&|&&|&&|&&|&&|&&|&王朝导购&&|&&|&&|&&|&&|&&|&&|&&|&&|&&|&王朝其他&&|&&|&&|&&|&&|&&|&&&&2005-&&版权所有&4023人阅读
codeigniter(6)
Apache服务器去掉URL中的index.php
apache支持 mod_rewrite,并已配置好 rewrite 相关的参数
1、打开httpd.conf,检查是否加载rewrite_module模块
LoadModule rewrite_module modules/mod_rewrite.so
你可以在cmd中执行命令:D:\php\Apache2\bin&httpd.exe -M (注:httpd.exe的路径根据你自己的apache的安装目录)
如果出现“rewrite_module (shared)”,即表示apache加载mod_rewrite模块成功,如下图所示:
2、将AllowOverride配置成ALL
例如我的网站根目录为d:\php\www目录,如下图所示:
这里插一句:增加
如果采用虚拟主机的方式,请直接在虚拟主机的配置文件中的相关位置增加配置。主文件中的配置不影响。也就是说如果主文件中的AllowOverride为NONE,说明不启用htaccess文件的话,如果在虚拟主机配置文件中对某个虚拟主机开启AllowOverride,这个虚拟主机仍会支持htaccess文件。
htaccess文件
然后,在 CI 根目录(与index.php同级) 下新建立一个配置文件,命名为: .htaccess&在里面这样写:&
RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]
就可以去掉 index.php 了。要注意 /index.php/$1 要根据你目录(Web 目录,比如 /index.php)的实际情况来定,比如网站根目录是 /ci/index.php 则要写成 /ci/index.php/$1,完整代码如下:
RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /ci/index.php/$1 [L]
RewriteCond $1 !^(index\.php|images|robots\.txt)上面的代码意思是排除某些目录或文件,使得这些目录不会 rewrite 到 index.php 上,这一般用在图片、js、css 等外部资源上。也就是说非 PHP 代码都要排除出去。(这里我排除了 images 目录和 robots.txt 文件,当然 index.php 也应该被排除)
CodeIgniter 中config.php文件配置
$config['index_page'] = &index.php&;把其中的 &index.php& 改成 && 就可以了。如下:
$config['index_page'] = &&;
以上配置完成,就可以去掉index.php了。注意:htaccess文件一定要放对位置,起初我放到了application目录下,导致浪费时间不说,还严重怀疑我的apache是否有问题。
相关文献:
下面介绍一下关于htaccess相关内容(持续更新)
RewriteRule ^(.*)$ /框架目录/index.php/$1 [L]
这个文件你看了CI代码里路由转发的话更容易理解,它会将URI后面的部分全部取出(即括号内部分),交给/框架目录/index.php/$1处理,这里$1即括号内部分
2、一个网友对这块内容不明白的人的回答内容
RewriteEngine on
RewriteCond $1 !^(index\\.php|captcha|public|js|css|robots\\.txt)
RewriteRule ^(.*)$ /zgxb/index.php/$1 [L]这个是我的CI项目里面的重定向文件,/zgxb/是项目名,上面的|public|是我放css或者js还有img的文件夹,根据项目实际内容稍加修改即可。
3、去掉index.php,一个网友的htaccess文件内容如下:
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
更多内容:
IIS6.0中去掉URL中的index.php
在IIS6.0中需要使用rewrite插件。这个做过伪静的都应该知道。不过,这一个有多个版本,我曾经在“codeignter中国论坛”上下载的一个版本,无法达到效果。不知道作者是如何配置的。由于不行,于是拿出我多年使用的rewrite,进行一番配置,解决了这个问题。下面是配置记要:
1、下载rewrite,这里面已经配置好了。不过也要根据你的网站环境增加一些内容。下面有描述。代码如下:
[ISAPI_Rewrite]
RewriteRule /(?:index\.php|images|css|js|upload)/(.*) $0 [I,L]
RewriteRule /(.*) /index.php/$1 [I,L]第一行是要排除的内容。比如上面的排除的内容有index.php文件,images目录,css目录等等。
第二行就是将浏览器的任何内容转到index.php/之后。我们知道,正常情况下,CI的访问都是要加上index.php/控制器/方法/xxx这样的模式的。通过上面的处理就可以实现我们想要的结果了。这里要注意的是第一行和第二行不能互换。第一行必须在第二行之前。就是说碰到了图片,样式等等这样的文件,不做转向处理。不然访问一个图片,本来是/image/aaa.gif就成了/index.php/images/aaa.gif,这样图片就不会访问到了。
简单的说,第一行是过滤,不应用规则的部分,也就是你看完我这篇文章,应用到你自己项目中可能要更改的部分。
第二行,由于我的CI项目就是根目录,所以我在index.php前面加了个/,也可以不加,不加就是表示当前目录。这个也可能会根据需要,决定是加,或不加,或者还要加个目录也说不定,这个没什么要说明的。
2、需要将application目录下的config.php文件中,即下面代码:
$config['index_page'] = 'index.php';把index.php去掉,改为:
$config['index_page'] = '';
在apache中可以不用改,但是在IIS6.0中必须要改,否则仍无法去掉index.php来访问。
今天又看了一下“codeigniter手册”,关于site_url()辅助函数的说明中看到以下内容:
Returns your site URL, as specified in your config file. The index.php file (or whatever you have set as your site index_page in your config file) will be added to the URL, as will any URI segments you pass to the function, and the url_suffix as set in your config file.对于site_url()函数,其index_page值也会添加到URL中,所以建议不管是apache还是iis,对于去掉index.php时,将index_page的值设置为空吧。
好了,你现在可以去掉index.php来访问你的任何页面了。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:1135730次
积分:10183
积分:10183
排名:第1308名
原创:129篇
转载:46篇
评论:97条
(1)(3)(10)(15)(13)(5)(3)(30)(67)(28)1841人阅读
本文参考 &介绍CodeIgniter如何将Controller连接Model层(操作数据库),实现读取新闻条目功能。通过本文串通Controller和Model以及View之间如何协同,控制。一,创建Model有一点需要明确,关于数据库的操作在model层,而非Controller层,Controller只负责业务控制逻辑,从model里取数据然后送给view。phpmyadmin里:CREATE TABLE news (
id int(11) NOT NULL AUTO_INCREMENT,
title varchar(128) NOT NULL,
slug varchar(128) NOT NULL,
text text NOT NULL,
PRIMARY KEY (id),
KEY slug (slug)
);新建个表。注意text类型的选utf8编码,然后随便插入两条数据。在models文件夹下新建News_model:&?php
* Created by PhpStorm.
* User: yanzi
* Date: 15/10/22
* Time: 下午6:38
class News_model extends CI_Model{
public function __construct(){
$this-&load-&database();
public function get_news($slug = FALSE){
if($slug == false){
$query = $this-&db-&get('news');
return $query-&result_array();
$query = $this-&db-&get_where('news', array('slug' =& slug));
return $query-&row_array();
}注意上面result_array()是返回查询到所有的结果,row_array()是返回查询的当前那条结果。关于数据库的部分可以参考 二新建ControllerNews.php&?php
* Created by PhpStorm.
* User: yanzi
* Date: 15/10/23
* Time: 上午11:38
class News extends CI_Controller {
* News constructor.
public function __construct() {
parent::__construct();
$this-&load-&model(&news_model&);
$this-&load-&helper('url_helper');
* 显示所有新闻
public function index(){
$data['news'] = $this-&news_model-&get_news();
$data['title'] = 'News archive';
$this-&load-&view('templates/header', $data);
$this-&load-&view('news/index', $data);
$this-&load-&view('templates/footer');
* 显示某一个slug的新闻
* @param null $slug
public function view($slug = NULL)
$data['news_item'] = $this-&news_model-&get_news($slug);
if (empty($data['news_item']))
show_404();
$data['title'] = $data['news_item']['title'];
$this-&load-&view('templates/header', $data);
$this-&load-&view('news/view', $data);
$this-&load-&view('templates/footer');
}注意:1,Controller如何加载Model?在News的构造函数里通过load-&model(''&)里将model目录下对应名字的model加载进来,然后再使用时通过$this-&news_model进行调用。2,Model的名字是不区分大小写的,即真正的model可以大写,在load的时候可以写成小写。3,Controller如何跟view层发生关系?通过$this-&load-&view('')加载view文件夹下的文件,传递一个array。在Controller里的array的key,在view下就是对应的变量名字。关于传递数据这块可以参考 CI的部分。4,通过代码可以看到,News这个控制器加载了view/news文件夹下的index.php 和view.php三,新建index.php&h2&&?php echo $ ?&&/h2&
&?php foreach ($news as $news_item): ?&
&h3&&?php echo $news_item['title']; ?&&/h3&
&div class=&main&&
&?php echo $news_item['text']; ?&
&p&&a href=&&?php echo site_url('news/'.$news_item['slug']); ?&&&View article&/a&&/p&
&? ?&注意:此处用了site_url设置超链接,用意是地址栏里输入news/slug能直接跳转到news/view/slug,因此要设置路由。view.php&?php
echo '&h2&'.$news_item['title'].'&/h2&';
echo $news_item['text'];
四,修改routes.php在原来基础上,增加以下两句:$route['news'] = 'news';
$route['news/(:any)'] = 'news/view/$1';五,配置数据库在database.php里配置下数据库相关信息。经过以上5步,一切ok。浏览器输入:http://localhost/~yanzi/CodeIgniter/index.php/news点击超链接后http://localhost/~yanzi/CodeIgniter/index.php/news/slug1111 转到以下:
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:4253594次
积分:34115
积分:34115
排名:第112名
原创:366篇
转载:12篇
评论:2847条
文章:23篇
阅读:482484
(3)(1)(3)(5)(5)(5)(8)(4)(3)(3)(7)(10)(4)(2)(3)(1)(3)(7)(2)(1)(4)(1)(3)(17)(14)(7)(8)(7)(6)(3)(7)(7)(3)(3)(7)(5)(6)(11)(24)(6)(11)(10)(13)(11)(34)(39)(2)(23)(6)My boss told me make dry navigation dont use repetitive code, for navigation i am trying to extend CI_Controler and with construct load header nav, body, footer files.
My question is when i create new controller and when i try to load different view files, how to achive that???
my extended controler
class MY_Controller extends CI_Controller
public function __construct() {
parent::__construct();
$this-&load-&view('view_header');
$this-&load-&view('includes/nav_home');
$this-&load-&view('view_home');
$this-&load-&view('view_footer');
and later when i am creating new controler how to load diffrent view files
class Pages extends MY_Controller
public function __construct() {
$this-&load-&view('includes/nav_new_view');
解决方案 You can create a template library yourself. For example :
function template($view_name,$view_data){
//below will return html string from view name
$data['content'] = $this-&load-&view($view_name,$view_data,true)
//load main template view and pass the html string to main template
$this-&load-&view('main_template',$data);
In main template, just echo $content
本文地址: &
我的老板告诉我做干燥导航不要使用重复的代码,对于导航我试图扩展CI_Controler和构造加载头nav,body,footer文件。
我的问题是当我创建新的控制器,当我尝试加载不同的视图文件,如何achive的
我的扩展控制器
class MY_Controller extends CI_Controller
{ public function __construct(){
parent :: __
$ this-& load-& view('view_header');
$ this-& load-& view('includes / nav_home');
$ this-& load-& view('view_home');
$ this-& load-& view('view_footer');
控制器如何加载diffrent视图文件
class Pages extends MY_Controller
{ public function __construct
$ this-& load-& view('includes / nav_new_view');
方案 您可以自己创建一个模板库。例如:
函数模板($ view_name,$ view_data){ //下面将从视图返回html字符串name
$ data ['content'] = $ this-& load-& view($ view_name,$ view_data,true)
//加载主模板视图并传递html string to main template
$ this-& load-& view('main_template',$ data); }
在主模板中,只是echo $ content
本文地址: &
扫一扫关注官方微信

我要回帖

更多关于 codeigniter 二级域名 的文章

 

随机推荐