CodeIgniter框架学习记录

来源:互联网 发布:北京软件退税政策 编辑:程序博客网 时间:2024/05/22 00:27

1.以下划线为开头的控制器方法不能被浏览器直接访问,但可以被其他方法调用

必须public,不能下划线开头的方法才能被浏览器直接访问,访问时方法名是不区分大小写的

2.变量的共享:

在控制器里:

public function index(){$arr = array(array('id'=>'101','name'=>'jack'),array('id'=>'102','name'=>'bob'),);$this->load->vars('ar',$arr);$tel = '101012';$this->load->vars('tele',$tel);$values['title']='much';$values['title2']='apple';$this->load->vars($values);$this->load->view('test');}

在视图里:

<html><head><meta http-equiv="Content-Language" content="en" /><meta name="GENERATOR" content="PHPEclipse 1.0" /><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /><title>title</title></head><body bgcolor="#FFFFFF" text="#000000" link="#FF9966" vlink="#FF9966" alink="#FFCC99"><?phpecho $tele;echo $title;echo $title2;?><table><?php foreach($ar as $item)://推荐使用此方法?><tr><td><?php echo $item['id'];?></td><td><?php echo $item['name'];?></td></tr><?php endforeach;?></table></body></html>

3.数据库读出数据

 <span style="white-space:pre"></span>    $sql = 'select * from designer';    $list  = $this->db->query($sql)->result();    $user['user'] = $list;    $this->load->view('test',$user);
->result 返回数组,每一条是对象

->result_array 返回数组,每一条是数组

->row 返回第一条数据,是对象

4.在默认的情况下,CodeIgniter会显示所有的PHP错误。但是当你开发程序结束时,你可能想要改变这个情况。

你会发现在index.php文件顶端有这个函数error_reporting(),通过它可以进行对错误的设置。 即使你关闭了错误报告,当有错误发生时,错误记录也不会停止。
所以,修改php.ini不能达到我们想要的效果。

下面是解决办法:

Codeigniter中禁止A Database Error Occurred错误提示

在CodeIgniter 用户指南中说到,设置 ENVIRONMENT 常量为 'development' 值将会允许所有PHP错误报告都输出到浏览器。 相反的,设置常量为 'production' 将会禁止所有错误报告的输出。

index.php中修改error_reporting:

代码如下:
define('ENVIRONMENT', 'production'); //默认是developmentif (defined('ENVIRONMENT'))  {      switch (ENVIRONMENT)      {          case 'development':              error_reporting(E_ALL);  //添加 ^E_NOTICE 可以屏蔽提示 添加^E_WARNING可以屏蔽警告         break;          case 'testing':          case 'production':              error_reporting(0);          break;          default:              exit('The application environment is not set correctly.');      }  } 

Codeigniter中禁止A PHP Error was encountered错误提示

config/database.php中修改数据库设置:

代码如下:
$db['default']['db_debug'] = FALSE;
5.解决
A PHP Error was encountered
Warning: Invalid argument supplied for foreach
if(is_array($arr))    //add{//用if包围foreach即可}
6.模型加载
<?phpclass My_model extends CI_Model{public function getAll(){$this->load->database();$sql =  "select * from designer";$res = $this->db->query($sql);return $res->result_array();}}
public function getAll(){$this->load->model("My_model");$result = $this->My_model->getAll();var_dump($result);}
起一个别名
public function getAll(){$this->load->model("My_model","user");$result = $this->user->getAll();var_dump($result);}

文件名全小写,类名全大写,建议增加后缀名防止和控制器冲突

7.url相关参数
  public function sub(){    echo $this->input->post('password');    } public function loadview(){        $this->load->helper("url");    $this->load->view("view");    }
<form action="<?php echo site_url("welcome/sub")?>" method="post" enctype="text/plain">  name<input type="text" name="name" value="value" size="40" maxlength="40"/>  password<input type="text" name="password" value="value" size="40" maxlength="40"/>  email<input type="text" name="email" value="value" size="40" maxlength="40"/>  <input type="submit" name="submit" value="value"/>  </form>
 另外base_url为基础目录 即为application文件夹所在的目录。
此helper可以配置自动加载,database也一样

8.修改默认控制器
在config\routes文件中
route_defaultcontroller
9.配置路由
本身不存在的控制器方法,可以通过路由统一路由到同一个控制器来处理,可以隐藏入口文件







0 0
原创粉丝点击