而save方法则会自动把当前的数据对象更新到数据库,而更新的条件其实就是表的主键
数据的更新操作在ThinkPHP使用save方法,可以看到,我们同样可以使用create方法创建表单提交的数
据,而save方法则会自动把当前的数据对象更新到数据库,而更新的条件其实就是表的主键,这就是我们
在编辑页面要把主键的值作为隐藏字段一起提交的原因。
D:\LearnWebDevelop\php\thinkphp_3.2.3_full\Application\Home\Controller\FormController.class.php
<?php namespace Home\Controller; use Think\Controller; class FormController extends Controller{ //下面是一个标准的URL访问格式: //http://serverName/index.php/模块/控制器/操作(/参数名/参数值) //http://localhost/thinkphp323/index.php/home/Form/add //http://localhost/thinkphp323/index.php/home/index/hello/name/baby //public function add(){ //$Data = M('Data');// 实例化Data数据模型 //var_dump($Data);exit(); //$result = $Data->find(1); // $this->assign('title',"Form/add"); // $this->display(); //} public function insert(){ //var_dump($_POST); $Form = D('Form'); if($Form->create()) { $result = $Form->add(); if($result) { $this->success('数据添加成功!'); }else{ $this->error('数据添加错误!'); } }else{ $this->error($Form->getError()); } //$this->assign('result',"Success!"); //$this->display(); } //http://localhost/thinkphp323/?s=/home/Form/code_insert public function code_insert(){ $Form = D('Form'); $data['title'] = 'ThinkPHP'; $data['content'] = '表单内容'; $result = $Form->add($data); var_dump($result); } public function code_insert2(){ $Form = D('Form'); $Form->title = 'ThinkPHP2'; $Form->content = '表单内容2'; $Form->add(); } //http://localhost/thinkphp323/index.php/home/Form/read/id/1 public function read($id=0){ $Form = M('Form'); // 读取数据 $data = $Form->find($id); if($data) { var_dump($data);exit(); $this->assign('data',$data);// 模板变量赋值 }else{ $this->error('数据错误'); } $this->display(); } //http://localhost/thinkphp323/index.php/home/Form/read_title/id/1 //如果你只需要查询某个字段的值,还可以使用getField方法,例如: public function read_title($id=0){ $Form = M("Form"); // 获取标题 $title = $Form->where('id=' . $id)->getField('title'); var_dump($title); //$Form = M('Form'); // 读取数据 //$data = $Form->find($id); //if($data) { // var_dump($data);exit(); // $this->assign('data',$data);// 模板变量赋值 //}else{ // $this->error('数据错误'); //} //$this->display(); } //http://localhost/thinkphp323/index.php/home/Form/edit/id/1 public function edit($id=0){ /* $Form = M('Form'); $this->assign('vo',$Form->find($id)); $this->display(); */ $Form = M('Form'); // 读取数据 $data = $Form->find($id); if($data) { //var_dump($data);exit(); $this->assign('vo',$data);// 模板变量赋值 }else{ $this->error('数据错误'); } $this->display(); } public function update(){ //var_dump($_POST); $Form = D('Form'); if($Form->create()) { $result = $Form->save(); if($result) { $this->success('数据保存成功!'); }else{ $this->error('数据写入错误!'); } }else{ $this->error($Form->getError()); } } }
D:\LearnWebDevelop\php\thinkphp_3.2.3_full\Application\Home\View\Form\edit.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title> New Document </title> <meta charset="UTF-8"> <meta name="Author" content=""> <meta name="Keywords" content=""> <meta name="Description" content=""> </head> <body> <FORM method="post" action="__URL__/update"> 标题:<INPUT type="text" name="title" value="{$vo.title}"> <br/> 内容:<TEXTAREA name="content" rows="5" cols="45">{$vo.content}</TEXTAREA> <br/> <INPUT type="hidden" name="id" value="{$vo.id}"> <INPUT type="submit" value="提交"> </FORM> </body> </html>
D:\LearnWebDevelop\php\thinkphp_3.2.3_full\Application\Home\Model\FormModel.class.php
<?php namespace Home\Model; use Think\Model; class FormModel extends Model { // 定义自动验证 protected $_validate = array( array('title','require','标题必须'), ); // 定义自动完成 protected $_auto = array( array('create_time','time',1,'function'), ); }
Save方法,不会自动完成‘create_time’
public function update(){ //var_dump($_POST); $Form = D('Form'); if($Form->create()) { $Form->create_time = time();//手动插入更新时间 $result = $Form->save(); if($result) { $this->success('数据保存成功!'); }else{ $this->error('数据写入错误!'); } }else{ $this->error($Form->getError()); } }

 
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号