php

thinkphp中create方法的具体使用

2023-09-18

注意:使用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();

}