方法簽名與參數
success($message = '', $ajax = false)
error($message = '', $ajax = false)
| 參數 | 說明 |
$message | 提示訊息(選填) |
$ajax | 是否 AJAX 請求,預設 false。若 true 則呼叫 ajaxReturn() 回傳 JSON |
基本用法範例
<?php
public function insert() {
$Dao = M('User');
if ($lastInsId = $Dao->add()) {
// 設定跳轉目標
$this->assign('jumpUrl', 'index');
$this->success("新增成功,ID:$lastInsId");
} else {
header("Content-Type:text/html; charset=utf-8");
exit($Dao->getError() . '<a href="javascript:history.back()">返回</a>');
}
}
成功/失敗模板變數
預設使用 Tpl/Public/success.html,可接收變數:
| 變數 | 說明 | 預設值 |
$waitSecond | 等待秒數 | success: 1, error: 3 |
$jumpUrl | 跳轉目標 URL | $_SERVER['HTTP_REFERER'] |
$msgTitle | 操作標題 | 語言包 _OPERATION_SUCCESS_/_OPERATION_FAIL_ |
$message | 提示訊息 | 傳入的 $message |
$status | 狀態碼 | 1=成功, 0=失敗 |
jumpUrl 設定技巧
<?php
// 本模組其他方法
$this->assign('jumpUrl', 'index');
// 帶參數
$this->assign('jumpUrl', 'index/section/' . $section);
// 跨模組
$this->assign('jumpUrl', '__APP__/User/index');
// 使用 U 方法(需修改模板)
// 模板中:
// <meta http-equiv='Refresh' content='{$waitSecond};URL={:U($jumpUrl)}'>
// 控制器賦值需對應 U 方法格式
自訂 Error 模板
預設 error 同用 success.html。若需區分,修改配置:
<?php
// ThinkPHP/Common/convention.php 或專案配置
'TMPL_ACTION_ERROR' => 'Public:error', // 指向 Tpl/Public/error.html
redirect 重導向對比
| 方法 | 適用場景 | 特點 |
success/error | 需提示訊息、延遲跳轉 | 輸出模板、支援 AJAX 自動切換 |
redirect | 無需提示、直接跳轉 | HTTP 302、效能較好 |
模板客製化建議
- 複製
Tpl/Public/success.html 至專案 Tpl/Public/ 覆蓋
- 加入 CSS 動畫、進度條、響應式佈局
- 區分成功/失敗視覺風格(綠/紅、圖示)
- 支援
$ajax 時回傳 JSON 供前端 Vue/React 處理