首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

ThinkPHP 模板輸出與模型操作全解析:從變量分配到 CURD 實戰

     編輯:PHP 相關知識

前言

ThinkPHP 模板引擎與模型層是 MVC 開發核心。本文系統梳理模板輸出三種方式、定界符自定義、模型實例化兩種模式、CURD 操作、volist 遍歷、頁面 Trace 調試等核心知識點。

一、模板輸出三種方式

1. 原生 PHP 輸出(不推薦常規業務)

<?php echo $username; ?>
// 或
<?= $username ?>

2. display() 方法(標準方式)

<?php
class IndexAction extends Action {
    public function index() {
        $this->assign('username', '張三');  // 分配變量
        $this->assign('users', $userList);  // 分配陣列
        $this->display();  // 默認渲染 當前模塊/當前操作.html
        // $this->display('Public:header');  // 跨模塊渲染
    }
}
?>

3. 直接輸出內容(API/調試用)

<?php
$this->show('內容字串');  // 直接輸出,不經模板引擎
?>

二、模板定界符自定義

默認 {$var},可修改避免與 JS 模板衝突:

<?php
// config.php 或項目配置文件
'TMPL_L_DELIM' => '<{',   // 左定界符
'TMPL_R_DELIM' => '}>',   // 右定界符
?>

模板中改用:<{$username}>、<{volist name="list" id="vo"}>...<{/volist}>

三、模型使用:兩種實例化方式

1. 完整配置數據庫連接

<?php
// config.php
'DB_TYPE'   => 'mysql',
'DB_HOST'   => 'localhost',
'DB_NAME'   => 'thinkphp',
'DB_USER'   => 'root',
'DB_PWD'    => '',
'DB_PORT'   => '3306',
'DB_PREFIX' => 'tp_',  // 表前綴

// 或 DSN 方式(優先級更高)
'DB_DSN' => 'mysql://root:@localhost:3306/thinkphp',
?>

2. 實例化方式對比

方式代碼特點
new Model()$m = new Model('User');顯式指定表名(不含前綴)
M() 方法$m = M('User');簡潔、自動處理前綴、單例模式

3. 實戰代碼

<?php
// 推薦:M() 方式
$m = M('User');  // 對應 tp_user 表

// 查詢
$list = $m->select();           // 全部
$user = $m->find(1);            // 主鍵查詢
$user = $m->where('status=1')->find();  // 條件查詢

// 新增
$data = array('username'=>'李四', 'email'=>'lisi@test.com');
$id = $m->add($data);  // 返回自增 ID

// 更新
$m->where('id=1')->save(array('username'=>'王五'));

// 刪除
$m->delete(1);  // 主鍵刪除
$m->where('status=0')->delete();  // 條件刪除
?>

四、CURD 核心方法速查

操作方法說明
Createadd($data)新增,返回主鍵 ID
Readfind($pk)/select()單條/多條查詢
Updatesave($data)更新,需先 where 或 data 含主鍵
Deletedelete($pk)/where()->delete()刪除

五、模板進階:volist 遍歷

<!-- 模板文件 -->
<volist name='users' id='vo'>
    <{$vo.id}>----<{$vo.username}>----<{$vo.sex}>
    <br/><br/>
</volist>

<!-- 支援嵌套 -->
<volist name='data' id='group'>
    <h3><{$group.name}></h3>
    <volist name='group.users' id='user'>
        <span><{$user.username}></span>
    </volist>
</volist>

volist 進階屬性

屬性說明
name數據源變量名(assign 分配的)
id循環變量名
offset起始位置
length循環長度
key鍵名變量
mod取模數(用於隔行換色)
empty空數據顯示內容

六、頁面 Trace 調試:開發利器

1. 開啟調試模式

<?php
// 入口文件 index.php
define('APP_DEBUG', true);  // 必須在最前面
?>

2. 開啟頁面 Trace

<?php
// 配置文件
'SHOW_PAGE_TRACE' => true,  // 頁面底部顯示 Trace 信息
?>

3. Trace 面板包含信息

  • 請求信息:URL、方法、參數、Session ID
  • 執行時間:總耗時、各階段耗時
  • 內存開銷:初始、峰值、當前
  • SQL 日誌:執行的 SQL、耗時、影響行數
  • 模板渲染:模板文件、變量、耗時
  • 錯誤堆棧:Notice/Warning/Fatal 完整堆棧

4. 生產環境關閉

<?php
// 生產環境必須關閉
define('APP_DEBUG', false);
'SHOW_PAGE_TRACE' => false,
?>

善用 Trace 能快速定位慢查詢、內存洩漏、模板變量缺失等疑難雜癥。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved