如何配置默认控制器?如果不设置,默认方法是哪个?
-
目录
application/config/routes.php
中配置
$route['default_controller'] = 'home';
$route['default_controller'] = 'home/add';
无法设置默认方法,要不就在url指定m参数,要不就是不指定m参数
如果不设置m参数,默认方法是index()
如何载入视图?
$this->load->view('home');
$this->load->view('index/home');
//视图用文件夹区分的话,必须带上文件夹名称
$this->load->view('home.html');
$this->load->view('head');
$this->load->view('home');
$this->load->view('foot');
更加优雅地引入公共视图
在home.php引入
<?php $this->load->view('head'); ?>
code-code
<?php $this->load->view('foot'); ?>
如何载入模型?载入后如何使用模型?
$this->load->model('user');
//载入User模型
第二参数:模型别名 string
第三参数:是否自动连接数据库 bool (数据库连接一般放在自动连接配置中)
在application/config/autoload.php中,修改如下:
$autoload['model'] = array('user');
//载入User模型
$this->model_name->method();
推荐使用原生PHP来替代模板引擎
<?php echo $variable; ?>
//if
<?php if (): ?>
// code
<?php elseif (): ?>
// code
<?php else: ?>
// code
<?php endif; ?>
//switch
<?php switch ():?>
<?php case :?>
// code
<?php break;?>
<?php case :?>
// code
<?php break;?>
<?php default:?>
// code
<?php endswitch;?>
//while(注意,没有 do…while 的语法)
<?php while ():?>
// code
<?php endwhile;?>
//for
<?php for ():?>
// code
<?php endfor;?>
//foreach
<?php foreach (): ?>
// code
<?php endforeach; ?>
辅助函数如何导入?辅助函数的优先级
$this->load->helper('url');
在 application/config/autoload.php 中添加 $autoload['helper'] = array('url');
application 下的自定义辅组函数
优先于 system下的辅助函数
如何安全获取输入?
$param = $this->input->get('key',TRUE)
// XSS filter
$param = $this->input->get('key',FALSE)
// NO XSS filter
如果请求的数据不存在,则返回 NULL (下面方法也一样)
$param = $this->input->post('key')
$param = $this->input->raw_input_stream;
$param = $this->input->input_stream('key', TRUE);
// XSS Clean
$param = $this->input->input_stream('key', FALSE);
// No XSS filter
$param = $this->input->cookie('some_cookie', TRUE);
// with XSS filter
$param = $this->input->server('some_data');
//获取$_SERVER数据
$product_id = $this->uri->segment(3, 0);
//获取第三个片段数据,如果没有默认0
怎样数据验证?验证不通过该如何处理?
$this->load->library('form_validation');
$this->form_validation->set_rules('email', 'Email', 'required');
$ret = $this->form_validation->run(); //成功返回True,否则返回false
$this->load->helper('form');
然后在视图中可以输入如下代码:
<input type="text" name="title" value="<?php echo set_value('title') ?>" />
<?php echo form_error('title') ?>
如何重写URL? 如何设置伪静态?
//以apache为例
开启mod_rewrite模块
把对应的目录AllowOverride设为All
在根目录下新建.htaccess文件
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
必须在config中找到config['index_page'] = ''
必须在config中找到config['url_suffix'] = '.html'
如何开启调试模式?如何开启页面缓存?
$this->output->enable_profiler(TRUE);
$this->output->enable_profiler(FALSE);
//禁用
$this->output->cache($n);
//在控制器中调用
系统核心类如何替换与扩展?
系统核心类位于:system/core/
注意:系统核心类只可以替换
与扩展
,不能创建新的
// 文件位于目录 application/core
// 类名要与核心类名一样 CI_开头
// 文件名要与系统核心文件名一样 例如:Input.php
class CI_Input {
}
// 文件位于目录 application/core
// 类名和文件名必须以 MY_ 开头。(这是可配置的) 例如:MY_Input.php
// 类必须继承自父类
class MY_Input extends CI_Input {
}
系统类库有哪几种? 不同类型的类库如何加载使用?
1、普通类库文件 位于system/libraries
2、驱动器 位于system/libraries/驱动器目录
$this->load->library('class_name');
$this->load->driver('class_name');
类库文件如何创建自己类库? 如何替换和扩展系统类库?
//在application/libraries目录下,创建自己的类库文件
class Someclass {
public function some_method()
{
}
}
//在application/libraries目录下,创建与系统类库文件同名的类库文件 例如:
//application/libraries/Email.php 文件
class CI_Email {
}
//在application/libraries目录下,你的新类名和文件名必须以 MY_ 为前缀 例如:
//application/libraries/MY_Email.php 文件
//类在定义时必须继承自父类
class MY_Email extends CI_Email {
}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。