TP5.0model的操作方法

Posted xuzhengzong

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了TP5.0model的操作方法相关的知识,希望对你有一定的参考价值。

 
//默认主键为自动识别,如果需要指定,可以设置属性:

namespace appindexmodel;

use thinkModel;

class User extends Model
{
    protected $pk = ‘uid‘;
    // 设置当前模型对应的完整数据表名称
    protected $table = ‘think_user‘;

}
技术分享图片

使用助手函数model()快速实例化模型(推荐)

技术分享图片
 public function save(){
        $user = model(‘User‘);  // 使用model 即可快速实例化模型,不必使用 $user = new User();
        $list = [
            [‘name‘=>‘thinkphp‘,‘email‘=>‘[email protected]‘]
        ];
        $user->saveAll($list);
    }
技术分享图片

 

 save()方法添加单条数据

技术分享图片
//使用data方法批量添加数据:
namespace appindexcontroller;
use thinkController;
use thinkRequest;
use appindexmodelUser as UserModel;
public function save(){ $user = new UserModel; $user->data([ ‘name‘ => ‘thinkphp‘, ‘email‘ => ‘[email protected]‘ ]); $count = $user->save();  
dump($count)  // save方法新增数据返回的是写入的记录数
}

技术分享图片
技术分享图片
// 使用allowField过滤非数据表字段
public function save(Request $request){
        $user = new UserModel();
        // $_POST过来的数据中包含数据表中没有的字段
        $user->data($request->param());    // 或者$_POST
       // 只会保存数据表中有的字段
        $user->allowField(true)->save();
    }    
技术分享图片
技术分享图片
// 希望某些指定字段写入
    public function save(Request $request){
        $user = new UserModel();
        $user->data($request->param());   
        // 只写入name字段和email字段的值
        $count = $user->allowField([‘name‘,‘email‘])->save();
        dump($count);die;
    }
技术分享图片
技术分享图片
// 获取自增id
    public function save(Request $request){
        $user = new UserModel();
        $user->data($request->param());   
        $user->allowField(true)->save();
        echo $user -> id;    // 输出当前插入数据的主键
    }
技术分享图片
技术分享图片
   //如果同一个实例里面多次新增数据,必须使用isUpdate(false)
 public function save(Request $request){
        $user = new UserModel();
        $user->data($request->param());
        $user->allowField([‘name‘])->save();    // 插入第一条数据
        $user->name=‘thinkphp‘;
        $user->email=‘[email protected]‘;
        $user->allowField([‘email‘])->isUpdate(false)->save(); // 再次插入一条数据
    }
技术分享图片

 saveAll()方法添加多条数据

技术分享图片
// saveAll()同时添加多条数据
    public function save(Request $request){
        $user = new UserModel();
        $list = [
            [‘name‘=>‘thinkphp‘,‘email‘=>‘[email protected]‘],
            [‘name‘=>‘chrdai‘,‘email‘=>‘[email protected]‘]
        ];
       $user->saveAll($list);
    }
技术分享图片
技术分享图片
// saveAll()方法中若数据中带有主键,则为更新操作,若不带主键则为插入操作
    public function save(Request $request){
        $user = new UserModel();
        $list = [    // 此处的两条数据将执行更新操作
            [‘id‘=>1,‘name‘=>‘thinkphp_update‘,‘email‘=>‘[email protected]‘],
            [‘id‘=>2,‘name‘=>‘chrdai_update‘,‘email‘=>‘[email protected]‘]
        ];
       $user->saveAll($list);
    }
技术分享图片

静态调用create方法创建并写入

技术分享图片
// 使用create方法可以直接将数据插入到数据库
 public function save(Request $request){
        $user = UserModel::create([
            ‘name‘=>‘thinkphp‘,    // 此处的字段必须是数据表中存在的
            ‘email‘=>‘[email protected]‘
        ]);
        echo $user->id; // 获取当前插入数据的id
    }
技术分享图片




以上是关于TP5.0model的操作方法的主要内容,如果未能解决你的问题,请参考以下文章

操作栏标签片段中的片段?

Android中每个片段的不同操作栏 - 最佳方法?

VSCode自定义代码片段——git命令操作一个完整流程

根据父活动在片段中调用不同的方法

jQuery的DOM操作

VSCode自定义代码片段15——git命令操作一个完整流程