ThinkPHP框架实现数据添加与显示的完整步骤

Theo
Theo
发布时间:2026-10-13| 7人浏览过
原创

本文将详细讲解如何利用ThinkPHP框架完成数据的添加与展示功能,通过标准的MVC架构模式,分别处理前端页面输入、后端数据验证及业务逻辑控制。

项目目标与注意事项

本次开发的目标是实现在“add”页面录入用户信息并提交后,能够在“lists”页面查询并显示新添加的数据。在进行文件命名时需注意,由于ThinkPHP框架内部已占用 list 字段作为保留关键字,因此在创建相关模板或控制器时,严禁使用 list.html 等含有该命名的文件名,建议使用 lists.html 以避免冲突。
预期的最终界面效果如下:

第一步:搭建前端输入表单(V - View层)

首先构建视图部分,利用HTML表单收集用户信息并通过POST方式提交至指定的控制器方法。以下是包含用户名、姓名、联系方式及密码的完整表单代码结构:

<form role="form" method="post" action="__MODULE__/Admin/User/doAdd">
     <div class="input-group"> <span class="input-group-addon">用户名:</span>
      <input type="text" class="form-control" placeholder="" name="username">
     </div>
     <div class="input-group "> <span class="input-group-addon" for="inputWarning1">真实姓名:</span>
      <input type="text" class="form-control" placeholder="" id="input" name="realname">
     </div>
     <div class="input-group"> <span class="input-group-addon">手机号码:</span>
      <input type="text" class="form-control" placeholder="" name="telphone">
     </div>
     <div class="input-group"> <span class="input-group-addon">电子邮箱:</span>
      <input type="text" class="form-control" placeholder="" name="email">
     </div>
     <div class="input-group"> <span class="input-group-addon">添加时间:</span>
      <input type="text" class="form-control" placeholder="2014-05-22" name="resgistertime">
     </div>
    <div class="input-group"> <span class="input-group-addon">设置密码:</span>
      <input type="text" class="form-control" placeholder="123456" name="password">
     </div>
    <div class="input-group"> <span class="input-group-addon">确认密码:</span>
      <input type="text" class="form-control" placeholder="123456" name="repassword">
     </div>
     <div class="input-group">
      <button type="submit" class="btn btn-primary "> &nbsp;&nbsp;保存&nbsp;&nbsp;</button>
     </div>
    </form>

第二步:配置数据验证规则(M - Model层)

Model层主要负责数据的合法性检查,通过定义自动验证规则来拦截无效输入并返回明确的错误提示。在 AdminUsersModel 类中配置必填项校验:

<?php
namespace Admin\Model;
use Think\Model;

class AdminUsersModel extends Model {
  public $_validate = array (
    array("username", "require", "用户名不能为空"),
    array("realname", "require", "真实姓名不能为空"),
    array("password", "require", "密码不能为空"),
    array("repassword", "require", "确认密码不能为空"),
    array("telphone", "require", "电话不能为空"),
    array("email", "require", "邮箱不能为空"),
    array("resgistertime", "require", "注册时间不能为空")
  );
}

第三步:编写业务逻辑控制(C - Controller层)

最后实现Controller层的两个核心方法:add 用于渲染添加页面,doAdd 负责接收POST请求、实例化模型、执行验证并处理入库逻辑。

public function add(){
  $this->display();
}
public function doAdd(){
  // 限制仅允许POST请求
  if (!IS_POST) {
    exit("bad request!");
  }
  // 实例化AdminUsers模型
  $adminUsersModel = D("AdminUsers");
  // 尝试创建对象,此处会触发Model层的验证规则
  if (!$adminUsersModel->create()) {
    $this->error($adminUsersModel->getError());
  }
  // 执行添加操作
  if ($adminUsersModel->add()) {             
    // 成功后跳转至列表页
    $this->success("添加成功!",U("Admin/User/lists"));
  }
  else{
    $this->error("添加失败!");
  }
}

以上就是利用ThinkPHP框架实现数据添加和显示的详细内容,更多关于PHP框架开发的资料请关注本站其它相关文章!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。