fastadmin框架调用model层的方法

简介: fastadmin框架调用model层的方法

当使用FastAdmin框架进行Web应用程序开发时,经常需要与数据库交互以执行各种操作,如获取、创建、更新和删除数据。为了实现这些操作,FastAdmin采用了Model-View-Controller(MVC)模式,其中Model层负责处理数据库操作。在本篇博客中,我们将探讨如何在FastAdmin中调用Model层的方法,以实现数据操作。

什么是FastAdmin框架?

FastAdmin是一个基于ThinkPHP5和Bootstrap的后台管理系统框架,它提供了丰富的功能和组件,用于快速构建强大的后台管理系统。FastAdmin旨在帮助开发者高效地创建后台管理界面,并提供了强大的数据库操作能力,其中Model层发挥了关键作用。


在application文件中创建板块ceshi

我这边创建板块名:ceshi   控制器:Ceshi  模型:Ceshi    一般情况下控制器要和模型在一个板块中,这边建议大家一我这种方式创建,当然有更好的方法也可以


创建Model层

首先,让我们来创建一个Model,以便在FastAdmin中执行数据库操作。以下是一个示例Model,用于操作用户数据表:

<?php
namespace app\ceshi\model;
use think\Model;
class Ceshi extends Model
{
    // 定义数据表名,默认情况下会自动根据类名生成
    protected $name = 'Ceshi';
    // 查询用户信息
    public function getUserInfo($userId)
    {
        return $this->where('id', $userId)->find();
    }
    // 创建用户
    public function createUser($data)
    {
        return $this->save($data);
    }
    // 更新用户信息
    public function updateUser($userId, $data)
    {
        return $this->where('id', $userId)->update($data);
    }
    // 删除用户
    public function deleteUser($userId)
    {
        return $this->where('id', $userId)->delete();
    }
}


在上述示例中,我们创建了一个Ceshi模型,它包含了一些常见的数据库操作方法,如查询用户信息、创建用户、更新用户信息和删除用户。

调用Model层方法

一旦我们创建了Model,就可以在控制器中调用它的方法来执行数据库操作。以下是一个示例控制器,演示如何调用Ceshi模型中的方法:

<?php
namespace app\ceshi\controller;
use app\ceshi\model\Ceshi as User; // 引入Ceshi模型  别名  User
//这里要注意下控制器和模型的名字不能重复,如果重复的话加上as别名,否则可以不加
class UserController
{
    // 获取用户信息
    public function getUser($userId)
    {
        $userModel = new User(); // 创建User模型实例
        $userInfo = $userModel->getUserInfo($userId); // 调用getUserInfo方法
        return json(['status' => 'success', 'data' => $userInfo]);
    }
    // 创建用户
    public function createUser()
    {
        $postData = input('post.'); // 获取POST数据
        $userModel = new User(); // 创建User模型实例
        $result = $userModel->createUser($postData); // 调用createUser方法
        if ($result) {
            return json(['status' => 'success', 'message' => '用户创建成功']);
        } else {
            return json(['status' => 'error', 'message' => '用户创建失败']);
        }
    }
    // 更新用户信息
    public function updateUser($userId)
    {
        $postData = input('post.'); // 获取POST数据
        $userModel = new User(); // 创建User模型实例
        $result = $userModel->updateUser($userId, $postData); // 调用updateUser方法
        if ($result) {
            return json(['status' => 'success', 'message' => '用户信息更新成功']);
        } else {
            return json(['status' => 'error', 'message' => '用户信息更新失败']);
        }
    }
    // 删除用户
    public function deleteUser($userId)
    {
        $userModel = new User(); // 创建User模型实例
        $result = $userModel->deleteUser($userId); // 调用deleteUser方法
        if ($result) {
            return json(['status' => 'success', 'message' => '用户删除成功']);
        } else {
            return json(['status' => 'error', 'message' => '用户删除失败']);
        }
    }
}

在上述示例中,我们创建了一个Ceshi控制器,该控制器包含了四个方法,分别用于获取用户信息、创建用户、更新用户信息和删除用户。在每个方法中,我们首先实例化了Ceshi模型,然后调用了模型中定义的方法来执行相应的数据库操作。


那么到这里相信大家会有一个疑问,那些代码的逻辑该在哪里写呢,以下代码告诉你:

首先是控制器:

<?php
namespace app\ceshi\controller;
use app\ceshi\model\Ceshi as Ceshis;
use app\common\controller\Api;
use tink\Db;
/**
* 首页接口
*/
class Ceshi extends Api
 {
    protected $noNeedLogin = '*';
    protected $noNeedRight = '*';
    public function query()
    {
//控制器这边呢是可以接收参数的,我们把接收参数的变量传给getUserInfo()方法里
//这个getUserInfo()是model中的一个方法
        $arr = [];
        if(input('type_store'))$arr['type_store'] = input('type_store');
        $userModel = new Ceshis();
        $userInfo = $userModel->getUserInfo($arr);
        return json(['status' => 'success', 'data' => $userInfo]);
    }
}

其次模型:

<?php
namespace app\ceshi\model;
use tink\Db;
use think\Model;
class Ceshi extends Model
{
    // 定义表名,默认情况下会自动根据类名生成
    // protected $name = 'information';
    // 查询用户信息
    public function getUserInfo($arr)
    {
//我们可以在这写一些逻辑代码  比如:if($arr['type_store'] == 1)return 1;
        $result = db('information')->where($arr)->select();
        return $result;
    }
}

总结:

当使用FastAdmin框架进行Web应用程序开发时,通过Model层的方法执行数据库操作是非常常见的任务。下面是关于如何在FastAdmin中调用Model层方法的总结:

  1. 创建Model层
  • 创建一个Model来定义数据库表格的结构和操作。
  • 通常将模型存放在application/板块名/model目录下。
  • 定义Model方法:


在Model中定义方法来处理数据库操作,如查询、创建、更新和删除数据。

调用Model方法:


在控制器中实例化Model,并调用其中定义的方法来执行数据库操作。

根据需要,将模型方法的结果返回给客户端。

测试API:


使用HTTP请求工具如cURL、Postman,或编写代码来测试API接口。

确保控制器中调用Model层方法的正确性和数据库操作的有效性。

测试接口直接请求控制器的方法就行了

通过以上步骤,你可以利用FastAdmin框架快速构建强大的后台管理系统,并实现各种数据库操作,从而满足你的应用程序需求。这种结构化的开发方式有助于提高代码的可维护性和可扩展性,使开发变得更加高效。


相关文章
|
开发框架 数据库 数据安全/隐私保护
FastAdmin框架实现数据表的增删改查
FastAdmin框架实现数据表的增删改查
996 0
|
数据安全/隐私保护
fastadmin是如何设置没有权限的用户不能访问某些页面的?
fastadmin是如何设置没有权限的用户不能访问某些页面的?
876 0
|
PHP 数据库
fastadmin框架如何查询数据表指定时间段内的数据
fastadmin框架如何查询数据表指定时间段内的数据
825 0
|
JavaScript 前端开发 数据库
让你少踩坑的fastadmin教程(3)
让你少踩坑的fastadmin教程
1757 0
让你少踩坑的fastadmin教程(3)
Fastadmin后台页面添加顶部按钮
操作的前提是需要在fastadmin框架中添加对应的控制器、模型、视图页面,可以手动创建,也可以使用curd一键生成。
510 0
|
前端开发 定位技术 API
二、前端高德地图、渲染标记(Marker)引入自定义icon,手动设置zoom
文章介绍了如何在前端使用高德地图API渲染标记(Marker),并引入自定义图标,同时展示了如何手动设置地图的缩放级别。
1742 1
|
存储 JSON 安全
ThinkPHP 文件上传 fileSystem 扩展的使用
本文介绍了在ThinkPHP框架中使用filesystem扩展进行文件上传的方法。包括安装filesystem扩展、了解配置文件、上传文件的验证规则以及文件上传的示例代码,旨在帮助开发者实现文件的安全上传和存储。
ThinkPHP 文件上传 fileSystem 扩展的使用
|
小程序
阿里云短信签名申请流程,手动整理(附短信签名问题解答)
阿里云短信签名是短信中的标识信息,如【阿里云】,用于表明发送方身份。申请流程简便:登录阿里云短信服务控制台,选择国内消息下的签名管理并添加签名,按指引填写表单。审核通常2小时内完成。个人用户每日限申请一个通用签名,企业用户数量不限。签名审核需确保业务主体一致,已通过审核的签名不可改名,仅能调整其它信息并重新审核。特定情况下需上传授权委托书,且签名需关联已备案网站。
3473 1
fastadmin实现导出Excel和导入Excel数据
fastadmin实现导出Excel和导入Excel数据
1005 0
|
JavaScript
fastadmin框架中如何添加一个自定义按钮
使用fastadmin框架添加一个按钮并给按钮绑定相应的事件指向控制器中的方法,在fastadmin框架的二次开发中非常的常见,接下来本篇就来介绍一下创建按钮的具体流程。
2178 0