thinkphp 專案分組 開發隨筆1

2021-09-08 18:09:10 字數 4122 閱讀 6413

php中變數的宣告, 和變數的初始化 是結合在一起的, 要宣告變數, 就是通過初始化變數來實現的.

感覺頁面版式的布局, 還是:

先大致規劃出布局, 如兩欄 三欄, 一覽的左右上下結合, 搭配.

然後,再考慮放值內容. 在設計版式的時候, 不必考慮內容.

的title和alt屬性的區別?

title是標題, 滑鼠指向時會出現 "工具欄提示"的就是title.

alt是指當因為某些原因不能顯示時, 出現在 叉叉上的文字.

要在 v3.1.3中實現分組, 只需在配置檔案中加上

'default_group' => 'index',

thinkphp 區分前台和後台的公共資料夾public?

前台的public資料夾, 就放在根目錄下的public中.

後台的public資料夾, 為了區分, 就放在tpl/admin/public中,

但是要在後台的配置檔案 conf/admin/config.php中配置:

return array(

'tmpl_parse_string' => array(

));

插入資料庫中的資料, 可以用:

insert into user values(....);

或者用:

insert into user set username='admin', passwd=md5('admin'), logintime=unix_timestamp(now())...;

在建立表的時候, 最後的儲存引擎和字符集可以用等號也可以不用等號:

create table user(....)engine=myisam default charset=utf8

或者: cretae table user(...) engine myisam default charset utf8

thinkphp中的位址, 統一的用方法來生成...

驗證碼的引用:

import('org/util/image');

image::buildimageverify(4, 5, 'png') 5: 表示字母和數字的隨機組合.

用foreach ..>來迴圈輸出一維陣列的時候, item本身就是 陣列元素的value了, 所以不能再對item進行取元素操作了,

也不能直接輸出文字,

可以用 $key 就表示元素的 "關聯"下標 的名稱了.

: 

:

// 這裡的key就是 上面的陣列變數 $key, $val, 表示陣列的關聯 下標和 元素的值.

狀態: 已登入

狀態: 沒登入

輸出:id:1

name:admin

passwd:root123

login:1 狀態: 已登入

m或d函式的create方法?

m和d方法都是common資料夾下的common.php檔案中的函式:

create是model類的乙個方法: 不管是m還是d都可以使用create方法. 只是d方法可以在類中建立$_validate.

/*** 建立資料物件 但不儲存到資料庫

* @access public

* @param mixed $data 建立資料

* @param string $type 狀態

* @return mixed

*/public function create($data='',$type='')

// 驗證完成生成資料物件

if($this->autocheckfields) elseif(magic_quotes_gpc && is_string($val))}}

$this->data = $data;

// 返回建立的資料以供其他呼叫

return $data;

}-------------------: 返回值 通常是乙個陣列, 但是如果錯誤,(表單中的字段和 資料庫表中的字段 不相對應的話! ) 則返回的是false, 在陣列表現上則為空.

一定要在對應的模組 的 配置檔案中, 寫上對應的 "資料庫" 連線配置, 主要是db_name=>'...', 因為預設的thinkphp的convention.php中的資料庫名稱是空的: db_nmae=''! 否則, 你是無論如何都得不到$data的! 無論如何都無法寫入資料到資料庫中去的, 因為 無法連線資料庫!

一定要寫上資料庫的表字首, 表示區分資料表

那麼在建立表的 時候 一定要加上表的字首!! 如你配置的字首是: db_prefix => 'ly', 那麼你建立的表的名稱就一定是'ly_user'.

其他都沒有什麼. 只是在遍歷select結果的時候, 非標籤 模板變數中一定要$ : ....

**** 在windows中, mysql的資料表名 不分大小寫, 同樣在m()和d()方法中,也就不區分 資料表模式名稱的大小寫!! m('user')=== m('user')但是php中的變數是嚴格區分大小寫的, 即:$user != $user的

看這個裡面的 配置項的寫法就可以了

如: 要配置跳轉 配置項: 'tmpl_action_success' => think_path.'tpl/dispatch_jump.tpl', 'tmpl_action_error'=> think_path.'tpl/dispatch_jump.tpl' 兩個都是跳轉到乙個相同的模板中的.

注意, 這兩個跳轉模板頁面,實際上, 也是根據 action->success/ error()方法呼叫display()來顯示的, 其中模板檔案中的 模板變數, 如$message, $error, $waitsecond, $jumpurl等都是通過success和error方法通過assign方法傳遞過來的模板變數引數. 因此可以在success方法中去修改傳遞的引數變數.

**** 自己去看action中的success方法, 裡面寫得清清楚楚 的!  

首先是 sucess()

error()

這兩個方法中, $message後的0,1 ,表示的是狀態$status.成功為1, 失敗為0.

然後, 在dispatchjump()

在除錯模式下, 異常變數$e的值有: $e['file'], $e['line'], $e['message'], $e['trace']等資訊.

在部署模式下, 就只有 $e['message'] 元素值.

在非除錯下, 定向到錯誤頁面: 第一, 首先判斷 if(!c['error_page']) 是否為空, 如果不為空,就直接重定向到錯誤頁面: redirect($error_page), 如果錯誤頁面沒有設定, 就輸出錯誤資訊: 第二, 看是否允許輸出自定義錯誤資訊: if(c['show_error_page']), 如果要輸出自定義錯誤資訊, 就讓$e['message'] = $error顯示這個自定義錯誤引數, 否則就顯示系統定義的錯誤資訊: $e['message']=c['error_message']

((( convention.php預設的錯誤頁面為空: 'error_page' => '',如果要重定向錯誤頁面, 就要自己去定義))

最後就是包含: include(c('tmpl_exception_file')) 異常模板頁面: think_exception.tpl,

如果if(isset($e['file/line/trace']) 等變數, 就輸出 這些異常除錯資訊, 否則, 就只輸出上面的$e['message']等資訊輸出到異常模板...

最後是exit.

也就說, halt會exit指令碼, 後面的**都不會執行!

_404($msg, $url)

/*** 404處理

* 1. 除錯模式會拋異常

* 2. 部署模式下面傳入url引數可以指定跳轉頁面,否則傳送404資訊

* @param string $msg 提示資訊

* @param string $url 跳轉url位址

* @return void

*/function _404($msg='',$url='') else

}

跳轉函式: redirect, success, error.

從字面上的含義都可以區分開來:

ThinkPHP 專案分組URL生成與URL訪問

專案分組中的u方法生成url u 分組名 模組 操作?引數 專案分組url訪問方式 啟用了專案分組後,多個分組全都會採用同乙個入口檔案進行訪問的形式。因此除了預設的專案分組外,其餘分組的url訪問要在入口位置後加上乙個專案組名稱。預設分組url 假設預設分組名稱為 home 以 www.phplo....

thinkPHP 模組分組

default group home 將home設為預設的專案。在我們啟用專案分組之前,由於使用的兩個專案,所以url位址分別是 http servername index.php index index home專案位址 http servername admin index.php index ...

thinkPHP 模組分組

default group home 將home設為預設的專案。在我們啟用專案分組之前,由於使用的兩個專案,所以url位址分別是 http servername index.php index index home專案位址 http servername admin index.php index ...