2019年8月5日 天气多云转晴
今天将从加载library()方法
、COOKIE辅助函数
、anchor辅助方法
、表单验证类
、表单辅助函数
五个方面;浅显的学习ci框架。
1. $this->load->library()
提示: 这个函数是用来加载核心类。详情参考
$this->load->library( 'className', 'config', 'myClassName');
第一个参数:欲加载的类
第二个参数:可选,作用是允许你有选择性地传递配置参数。
第三个参数:可选,给类库分配不同的对象名。
请注意,当第一个参数使用数组来同时载入多个类时,第三个参数将不起作用。
比如,你想用 CodeIgniter 来发送邮件,第一步就是在你的控制器里加载 email 类。
$this->load->library('email');
一旦被加载,就可以使用该类了, 使用 $this->email->some_function()。
有目录路径:libraries/flavors/chocolate.php;如何加载这个文件呢?
$this->load->library('flavors/chocolate');
注意:这里说的路径是指相对于libraries目录的路径
另外,你可以同时加载多个类(库),只要按照下面的代码为load方法传入一个包含所有要载入的类名的数组即可:
$this->load->library(array('email','table'));
2.COOKIE辅助函数
$this->load->helper('cookie');
引入类库
$this->load->helper('cookie');
设置cookie
set_cookie("cookie名称",$cookie信息,times过期时间);
获取方式
get_cookie("cookie名称");
3. anchor
它可以通过三个参数在页面组装出一个你想要的链接。
if ( ! function_exists('anchor'))
{
/**Anchor Link
- Creates an anchor based on the local URL.
*
- @param string the URL
- @param string the link title
- @param mixed any attributes
- @return string
*/
function anchor($uri = '', $title = '', $attributes = '')
{
$title = (string) $title;
$site_url = is_array($uri)
? site_url($uri)
: (preg_match('#^(\w+:)?//#i', $uri) ? $uri : site_url($uri));
if ($title === '')
{
$title = $site_url;
}
if ($attributes !== '')
{
$attributes = _stringify_attributes($attributes);
}
return '<a href="'.$site_url.'"'.$attributes.'>'.$title.'</a>';
}
}
第一个参数:根据你提供的 URL 生成一个标准的 HTML 链接。
第二个参数:链接的文本,如果留空,将使用链接本身作为文本。
第三个参数:为你希望添加到链接的属性,可以是一个字符串,也可以是个关联数组。
因为该方法为CI url_helper内置方法,所以在调用之前需要先把该辅助类引入进来
$this->load->helper('url');
4.表单验证类
$this->form_validation->run();
run() 方法只在全部成功匹配了你的规则后才会返回 TRUE
设置验证规则
$this->form_validation->set_rules();
上面的方法有 三个 参数:
- 表单域名 - 就是你给表单域取的那个名字。
- 表单域的 “人性化” 名字,它将被插入到错误信息中。例如, 如果你有一个表单域叫做 “user” ,你可能会给它一个人性化的名字叫做 “用户名” 。
- 为此表单域设置的验证规则。
- (可选的)当此表单域设置自定义的错误信息,如果没有设置该参数,将使用默认的。
5.表单辅助函数
form_open([$action = ''[, $attributes = ''[, $hidden = array()]]])
生成一个 form 起始标签,并且它的 action URL 会根据你的配置文件自动生成。 你还可以给表单添加属性和隐藏域,另外,它还会根据你配置文件中的字符集参数 自动生成 accept-charset 属性。
使用该函数来生成标签比你自己写 HTML 代码最大的好处是:当你的 URL 变动时, 它可以提供更好的可移植性。
这里是个简单的例子:
echo form_open('email/send');
上面的代码会创建一个表单,它的 action 为根 URL 加上 “email/send”,向下面这样:
<form method="post" accept-charset="utf-8" action="http://example.com/index.php/email/send">
可以通过第二个参数传递一个关联数组来添加属性,例如:
$attributes = array('class' => 'email', 'id' => 'myform');
echo form_open('email/send', $attributes);
另外,第二个参数你也可以直接使用字符串:
echo form_open('email/send', 'class="email" id="myform"');
上面的代码会创建一个类似于下面的表单:
<form method="post" accept-charset="utf-8" action="http://example.com/index.php/email/send" class="email" id="myform">
添加隐藏域
可以通过第三个参数传递一个关联数组来添加隐藏域,例如:
$hidden = array('username' => 'Joe', 'member_id' => '234');
echo form_open('email/send', '', $hidden);
你可以使用一个空值跳过第二个参数。上面的代码会创建一个类似于下面的表单:
<form method="post" accept-charset="utf-8" action="http://example.com/index.php/email/send">
<input type="hidden" name="username" value="Joe" />
<input type="hidden" name="member_id" value="234" />
文件上传
form_open_multipart([$action = ''[, $attributes = array()[, $hidden = array()]]])
参数:
$action (string) -- Form action/target URI string
$attributes (array) -- HTML attributes
$hidden (array) -- An array of hidden fields' definitions
返回:
An HTML multipart form opening tag
返回类型:
string
这个函数和上面的 form_open() 函数完全一样, 只是它会给表单添加一个 multipart 属性,在你使用表单上传文件时必须使用它。
PHP小复习
bool in_array ( mixed $needle , array $haystack [, bool $strict = FALSE ] )
在 haystack 中搜索 needle,如果没有设置 strict 则使用宽松的比较。
如果第三个参数 strict 的值为 TRUE 则 in_array() 函数还会检查 needle 的类型是否和 haystack 中的相同。
返回值
如果找到 needle 则返回 TRUE ,否则返回 FALSE 。
新大陆
查询结果并返回
public function get_userid($username, $password)
{
$this->db->select('id,roleid,
companyid,bsRoleId,adminId,adminRoleId,
username,password, salesareaid, vendorid');
$this->db->where('( username = \'' . $username . '\' or username = \'cms_' . $username . '\' )');
$this->db->where('password', $password);
$this->db->where('deleted', 0);
$this->db->where('adminRoleId <>', 0);
$query = $this->db->get('user');
$data = $query->row_array();
//关键在这里↓↓↓·
return isset($data['id']) ? $data : array();
}