启用路由
配置路由:在模块的配置文件中使用URL_ROUTE_RULES参数进行配置(conf/config.php)
// 开启路由 'URL_ROUTER_ON' => true,
格式数组:
'URL_ROUTE_RULES'=>array( 'news/:year/:month/:day' => array('News/archive', 'status=1'), 'news/:id' => 'News/read', 'news/read/:id' => '/news/:1', ),
路由规则的定义格式为: '路由表达式'=>'路由地址和传入参数' 或者array('路由表达式','路由地址','传入参数')
路由表达式包括规则路由和正则路由的定义表达式,只能使用字符串。
数据的创建
// 获取表单的POST数据
$data['name'] = $_POST['name']; $data['email'] = $_POST['email'];
// 更多的表单数据值获取 //……
创建数据对象create
$data['name'] = 'ThinkPHP'; $data['email'] = 'ThinkPHP@gmail.com'; $User->create($data);
创建新的数据对象
// 从User数据对象创建新的Member数据对象 $User = stdClass(); $User->name = 'ThinkPHP'; $User->email = 'ThinkPHP@gmail.com'; $Member = M("Member"); $Member->create($User);
创建完成的数据可以直接读取和修改,例如:
$data['name'] = 'ThinkPHP'; $data['email'] = 'ThinkPHP@gmail.com'; $User->create($data); // 创建完成数据对象后可以直接读取数据 echo $User->name; echo $User->email; // 也可以直接修改创建完成的数据 $User->name = 'onethink'; // 修改name字段数据 $User->status = 1; // 增加新的字段数据
字段合法性过滤 field方法
$data['name'] = 'thinkphp'; $data['email'] = 'thinkphp@gmail.com'; $data['status'] = 1; $data['test'] = 'test'; $User = M('User'); $data = $User->field('name,email')->create($data); dump($data);
数据写入 add()方法
$User = M("User"); // 实例化User对象 $data['name'] = 'ThinkPHP'; $data['email'] = 'ThinkPHP@gmail.com'; $User->add($data);
如果在add之前已经创建数据对象的话(例如使用了create或者data方法),add方法就不需要再传入数据了。 使用create方法的例子
$User = M("User"); // 实例化User对象 // 根据表单提交的POST数据创建数据对象 if($User->create()){ $result = $User->add(); // 写入数据到数据库 if($result){ // 如果主键是自动增长型 成功后返回值就是最新插入的值 $insertId = $result; } }
批量写入
// 批量添加数据 $dataList[] = array('name'=>'thinkphp','email'=>'thinkphp@gamil.com'); $dataList[] = array('name'=>'onethink','email'=>'onethink@gamil.com'); $User->addAll($dataList);
读取数据 读取数据是指读取数据表中的一行数据(或者关联数据),主要通过find
方法完成,
$User = M("User"); // 实例化User对象 // 查找status值为1name值为think的用户数据 $data = $User->where('status=1 AND name="thinkphp"')->find(); dump($data);
getField方法还可以支持限制数量,例如:
$this->getField('id,name',5); // 限制返回5条记录 $this->getField('id',3); // 获取id数组 限制3条记录
数据更新 save方法
$User = M("User"); // 实例化User对象 // 要修改的数据对象属性赋值 $data['name'] = 'ThinkPHP'; $data['email'] = 'ThinkPHP@gmail.com'; $User->where('id=5')->save($data); // 根据条件更新记录
也可以改成对象方式来操作:
$User = M("User"); // 实例化User对象
// 要修改的数据对象属性赋值
$User->name = 'ThinkPHP';
$User->email = 'ThinkPHP@gmail.com';
$User->where('id=5')->save(); // 根据条件更新记录
更新个别字段 setField
方法。
$User = M("User"); // 实例化User对象
// 更改用户的name值
$User-> where('id=5')->setField('name','ThinkPHP');
数据删除
$Form = M('Form'); $Form->delete(5); //表示删除主键为5的数据,delete方法可以删除单个数据,也可以删除多个数据,这取决于删除条件,例如: $User = M("User"); // 实例化User对象 $User->where('id=5')->delete(); // 删除id为5的用户数据 $User->delete('1,2,5'); // 删除主键为1,2和5的用户数据 $User->where('status=0')->delete(); // 删除所有状态为0的用户数据
模板赋值 assign方法 assign方法必须在display和show方法
之前调用
$this->assign('name',$value); // 下面的写法是等效的 $this->name = $value;
模板渲染 display方法
$this->display();