CodeIgnitier常用方法总结

入门了ci框架,阅读学院的网站可以大致明白其中结构,现记录。

1、  首先根目录下就有htaccess文件,开启重定向,在url中可以去掉index.php。

2、  MVC架构明确,定义了5~6个控制器,基本对应于网站的内容分类。

3、  对应定义了模型,模型重点是news模型,毕竟网站以文章为重点,并以查询为主要内容,定义了一些方法,查询网站各类文章。这对于一个以文章为重点呈现的网站是正确的。

4、  视图层由控制器控制加载,采用了多次加载页面的模式,把header和footer放入template文件夹中,为所有页面共有,其次再对应设置文件夹,对应各个控制器加载的页面。

5、  视图层通过连接(含不同参数)到二级页面,二级页面由控制器判断参数从而加载不同的视图内容。链接多用anchor方法。

等等……

 

阅读过程接触了很多频率高的方法,记下来:

一、 URL辅助函数:$this->load->helper('url');

1、 site_url(‘’):根据配置文件返回你的站点 URL。index.php (获取其他你在配置文件中设置的 index_page 参数) 将会包含在你的 URL 中。推荐在任何时候都使用这种方法来生成你的 URL ,这样在你的 URL 变动时你的代码将具有可移植性。

echo site_url('news/local/123');

上例将返回类似于:http://example.com/index.php/news/local/123

2、 base_url(‘’):该函数和 site_url() 函数相同,只是不会在 URL 的后面加上 index_page 或 url_suffix.

echo base_url("blog/post/123");

上例将返回类似于:http://example.com/blog/post/123

3、  anchor($uri = '', $title ='', $attributes = ''): 根据你提供的 URL 生成一个标准的 HTML 链接。第一个参数可以包含任何你想添加到 URL 上的段,和上面的 site_url() 函数一样,第二个参数是链接的文本,如果留空,将使用链接本身作为文本。第三个参数为你希望添加到链接的属性。

二、 表单辅助函数:$this->load->helper('form');

1、 form_open([$action= ''[, $attributes = ''[, $hidden = array()]]]):生成一个 form 起始标签,并且它的 action URL 会根据你的配置文件自动生成。 你还可以给表单添加属性和隐藏域。使用该函数来生成标签比你自己写 HTML 代码最大的好处是:当你的 URL 变动时, 它可以提供更好的可移植性。

2、 echo form_open('email/send');
上面的代码会创建一个表单,它的action 为根 URL 加上 "email/send"
<form method="post" accept-charset="utf-8" action="http://example.com/index.php/email/send">
属性:echo form_open('email/send', 'class="email" id="myform"');前端用。
3、  echo form_input('username', 'johndoe'); 用于生成标准的文本输入框。
4、  echo form_password
5、  echo form_upload
6、  echo form_textarea
7、  echo form_submit
8、  echo form_error/validation_errors返回错误(全部)信息等等
三、表单验证类:$this->load->library('form_validation');
在控制器中添加:
$this->form_validation->set_rules('username', 'Username', 'required');
$this->form_validation->set_rules('password', 'Password', 'required');
$this->form_validation->set_rules('passconf', 'Password Confirmation', 'required');
$this->form_validation->set_rules('email', 'Email', 'required');
模板:
<?php
class Form extends CI_Controller {
public function index()
{
$this->load->helper(array('form', 'url'));
$this->load->library('form_validation');
$this->form_validation->set_rules('username', 'Username', 'required');
$this->form_validation->set_rules('password', 'Password', 'required',
array('required' => 'You must provide a %s.')
);
$this->form_validation->set_rules('passconf', 'Password Confirmation', 'required');
$this->form_validation->set_rules('email', 'Email', 'required');
if ($this->form_validation->run() == FALSE)
{
$this->load->view('myform');
}
else
{
$this->load->view('formsuccess');
}
}
}
CodeIgniter 允许你将多个规则连接在一起。让我们试一试,修改规则设置函数中的第三个参数,如下:
$this->form_validation->set_rules('username', 'Username',
'required|min_length[5]|max_length[12]|is_unique[users.username]',
array(
'required' => 'You have not provided %s.',
'is_unique' => 'This %s already exists.'
)
);
$this->form_validation->set_rules('password', 'Password', 'required');
$this->form_validation->set_rules('passconf', 'Password Confirmation', required|matches[password]');
$this->form_validation->set_rules('email', 'Email', 'required|valid_email|is_unique[users.email]);
目前为止我们只是在处理错误,是时候用提交的数据重新填充表单了:
<?php echo validation_errors(); ?>
<?php echo form_open('form'); ?>
<h5>Username</h5>
<input type="text" name="username" value="<?php echo set_value('username'); ?>" size="50" />
<h5>Password</h5>
<input type="text" name="password" value="<?php echo set_value('password'); ?>" size="50" />
<h5>Password Confirm</h5>
<input type="text" name="passconf" value="<?php echo set_value('passconf'); ?>" size="50" />
<h5>Email Address</h5>
<input type="text" name="email" value="<?php echo set_value('email'); ?>" size="50" />
<div><input type="submit" value="Submit" /></div>
</form>
四、输入类(已经自动加载,无需手工加载)
输入类有两个用途:
1. 为了安全性,对输入数据进行预处理
2. 提供了一些辅助方法来获取输入数据并处理
$something = $this->input->post('something');相当于
$something = isset($_POST['something']) ? $_POST['something'] : NULL;
五、Session
Session(会话)类可以让你保持一个用户的 “状态” ,并跟踪他在浏览你的网站时
的活动。$this->load->library('session'); 初始化之后,就可以使用下面的方法来访问 Session 对象了:$this->session
Session 数据是个简单的数组,带有一个特定的 session ID (cookie)。
$_SESSION['item']或$this->session->item
$name = $_SESSION['name'];或$name = $this->session->name
$this->session->set_userdata($array);或
$this->session->set_userdata('some_name', 'some_value');
isset($_SESSION['some_name'])或$this->session->has_userdata('some_name');
unset($_SESSION['some_name']);或$this->session->unset_userdata('some_name');
session_destroy();或$this->session->sess_destroy();//销毁(例如退出登录时)
六、数据库语句(略)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值