當前位置: 首頁> 最新文章列表> ThinkPHP 5.1 Model 模型自動更新update_time 字段教程

ThinkPHP 5.1 Model 模型自動更新update_time 字段教程

gitbox 2025-07-29

簡介

ThinkPHP 5.1 是一款強大的PHP 開發框架,致力於滿足快速Web 開發需求。它的設計理念注重代碼重用、快速開發和系統擴展性,為開發者提供了靈活高效的開發體驗。

在ThinkPHP 5.1 中,利用模型(Model) 可以輕鬆實現對數據庫表格的增、刪、改、查操作。本文將通過一個實例,展示如何在模型中實現自動更新`update_time` 字段,簡化數據表更新操作。

創建數據表格

首先,我們需要在數據庫中創建一個包含`id`、`title`、`content` 和`update_time` 字段的`article` 表。以下是創建數據表的SQL 語句:

 CREATE TABLE `article` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'ID',
  `title` varchar(255) DEFAULT '' COMMENT '標題',
  `content` text COMMENT '內容',
  `update_time` int(11) DEFAULT '0' COMMENT '更新時間',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC COMMENT='文章表';

創建模型

接下來,我們在應用目錄下創建一個名為`Article.php` 的模型文件。代碼如下:

 namespace app\common\model;

use think\Model;

class Article extends Model
{
    // 設置自動寫入時間戳
    protected $autoWriteTimestamp = true;
}

上述代碼實現了`Article` 模型的定義,並設置了自動寫入時間戳的功能,使得模型能夠自動更新`update_time` 字段。

實現數據庫操作

然後,我們創建一個控制器`ArticleController.php`,該控制器用於處理文章的業務邏輯。以下是控制器的代碼:

 namespace app\index\controller;

use app\common\model\Article;
use think\Controller;

class ArticleController extends Controller
{
    // 查看文章詳情
    public function detail($id)
    {
        $article = Article::get($id);
        if (!$article) {
            return $this->error('文章不存在');
        }

        // 更新訪問量
        $article->setInc('views', 1);

        // 输出文章內容
        return view('detail', ['article' => $article]);
    }
}

在這個代碼中,我們首先根據傳入的文章ID 獲取相應的文章記錄,並更新其訪問量。隨後,將獲取到的文章數據傳遞給視圖模板進行渲染。

總結

通過本文的講解,我們了解瞭如何在ThinkPHP 5.1 中使用模型來自動更新`update_time` 字段。通過設置自動寫入時間戳,數據庫表的更新時間戳將被自動更新,這大大簡化了開發流程。 ThinkPHP 5.1 提供的模型功能讓數據庫操作更加靈活、簡便,有助於開發者提升開發效率。