美文网首页
模型基类常用方法

模型基类常用方法

作者: 廷裕同学 | 来源:发表于2022-05-31 23:40 被阅读0次

模型基类

<?php

declare(strict_types=1);

namespace app\model;

use think\db\exception\DataNotFoundException;
use think\db\exception\DbException;
use think\db\exception\ModelNotFoundException;
use think\Model;

/**
 * @mixin \think\Model
 */
class BaseModel extends Model
{
    /**
     * 获取单个信息
     * @param $id
     * @return array
     */
    public function getOne($id): array
    {
        try {
            return self::where("id", $id)->find()->toArray();
        } catch (DataNotFoundException|ModelNotFoundException|DbException $e) {
            return [];
        }
    }
    /**
     * 获取单个字段
     * @param $fileName
     * @param $map
     * @return string
     */
    public function getFiled($fileName, $map): string
    {
        $row = self::where($map)->field($fileName)->find();
        if ($row) {
            return $row[$fileName];
        } else {
            return "";
        }
    }
    /**
     * 添加新记录
     * @param $data
     * @return mixed
     */
    public function addOne($data){
        $obj = self::create($data);
//        print_r($obj);exit();
        return $obj->id;
    }

    /**
     * 软删除记录
     * @param $id
     * @return bool
     */
    public function softDel($id): bool
    {
        $update = self::update(["isdel"=>1],["id"=>$id]);
        return $update->isdel==1;
    }

    /**
     * 更新一条数据
     * @param $data
     * @return bool
     * @throws DataNotFoundException
     * @throws DbException
     * @throws ModelNotFoundException
     */
    public function editOne($data): bool
    {
        $id = $data['id'];
        unset($data['id']);
        $obj = self::find($id);
        if($obj){
            $rst = $obj->save($data);
            return $rst !== false;
        }else{
            return false;
        }

    }
}

模型继承基类

<?php
declare (strict_types = 1);

namespace app\model;


/**
 * @mixin \think\Model
 */
class Workers extends BaseModel
{
    //
}

最后控制器调用

<?php

namespace app\controller;

use app\BaseController;
use app\model\Workers;

class Index extends BaseController
{
    // 获取单条
    public function index()
    {
        $obj = new Workers();
        $row = $obj->getOne(1);
        print_r($row);
    }
    // 编辑
    public function edit(){
        $obj = new Workers();
        $data = ["id"=>15,"tel"=>'15821758130'];
        $rst = $obj->editOne($data);
        dump($rst);
//        print_r($rst);
    }
    // 添加
    public function add()
    {
        $obj = new Workers();
        $data = [
            "tel" => '17xxxxxx39',
            "password" => "123123",
            "photo" => "https://res.chengjingvet.com/2022052511021195430-4.jpg",
            "dname" => "司马医生",
            "level" => 1,
            "login_ip" => '127.0.0.1',
            "num" => 1
        ];
        $lastid = $obj->addOne($data);
        echo $lastid;
    }
    // 删除
    public function del(){
        $obj = new Workers();
        $result = $obj->softDel(15);
        if($result){
            echo '删除成功';
        }else{
            echo '删除失败';
        }
    }
}

相关文章

  • 模型基类常用方法

    模型基类 模型继承基类 最后控制器调用

  • 自定义实现克隆对象的两种方法

    方法1 定义基类 模型继承基类 使用 方法2 定义扩展方法 用法

  • RunTime应用实例:MustOverride

    一、常用做法 在IOS开发中,我们的基类往往会写一些空方法,然后让子类去实现,基类控制主要流程(这其实就是模板方法...

  • addView方法分析

    ViewGroup的addView方法,Android开发中最常用的方法之一。它是容器视图特有的方法,不在基类Vi...

  • Java IO流(二)

    IO流常用基类 字节流的抽象基类:InputStreamOutputStream字符流的抽象基类: ReaderW...

  • runtime常用方法

    类 类结构 类实例结构 常用函数 方法 结构 类方法的常用函数 方法的常用函数 方法选择器 动态创建类 示例: 动...

  • Objective-C之NSDictionary学习笔记(IOS

    NSDictionary类简介 属性表(@property) 常用方法 常用类方法 词典对象的生成 常用实例方法 ...

  • Laravel 模型基本操作

    个人使用Laravel 模型操作数据库的规范步骤。 根据项目中数据源的不同,创建 不同的模型基类。[即一个模型基类...

  • Sequelize | 5. 实例 - 常用方法

    模型 常用方法 创建实例(插入数据) build方法+save方法 create方法 其他常用方法 destroy...

  • 异常

    Throwable 所有异常与错误类的基类,提供的常用方法 Error 出现这个错误异常原因一般是用于Jvm或者硬...

网友评论

      本文标题:模型基类常用方法

      本文链接:https://www.haomeiwen.com/subject/evvtmrtx.html