注意:使用create方法需要关掉或者设置好配置里的TOKEN(令牌)
一、更新数据
还有一种方法是通过create或者data方法创建要更新的数据对象,然后进行保存操作,这样save方法的参数可以不需要传入。
1.$User = M("User"); // 实例化User对象
2.// 要修改的数据对象属性赋值
3.$data['name'] = 'ThinkPHP';
4.$data['email'] = 'ThinkPHP@gmail.com';
5.$User->where('id=5')->data($data)->save(); // 根据条件保存修改的数据
使用create方法的例子:
1.$User = M("User"); // 实例化User对象
2.// 根据表单提交的POST数据创建数据对象
3.$User->create();
4.$User->save(); // 根据条件保存修改的数据
二、添加数据
Create方法创建的数据对象是保存在内存中,并没有实际写入到数据库中,直到使用add或者save方法才会真正写入数据库。
因此在没有调用add或者save方法之前,我们都可以改变create方法创建的数据对象,例如:
1.$User = M('User');
2.$User->create(); //创建User数据对象
3.$User->status = 1; // 设置默认的用户状态
4.$User->create_time = time(); // 设置用户的创建时间
5.$User->add(); // 把用户对象写入数据库
如果只是想简单创建一个数据对象,并不需要完成一些额外的功能的话,可以使用data方法简单的创建数据对象。使用如下:
1.// 实例化User模型
2.$User = M('User');
3.// 创建数据后写入到数据库
4.$data['name'] = 'ThinkPHP';
5.$data['email'] = 'ThinkPHP@gmail.com';
6.$User->data($data)->add();
具体的代码:
//价格管理
public function price_edit(){
$obj=D('new_price');
$res=$obj->find();
if(isset($_POST['price_1'])){
if (!empty($_REQUEST['id'])) {
$obj->field('price_1,price_2,price_3,price_4,price_5,price_6,price_7,price_8')->create();
$obj->where('id='.$_REQUEST['id'])->save();
$this->redirect('index/price_edit');
return;
}else{
$obj->field('price_1,price_2,price_3,price_4,price_5,price_6,price_7,price_8')->create();
$obj->add();
$this->redirect('index/price_edit');
return;
}
}
$this->assign('res',$res);
$this->display();
}