您的位置:首页 > 其它

CodeIgnitier常用方法总结

2016-03-05 10:58 337 查看
入门了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();//销毁(例如退出登录时)

六、数据库语句(略)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: