thinkphp-许愿墙-2
在數組中,也可以使用函數,如:
$data = array('username'=> I('username','', 'htmlspecailchars'),'content'=> I('content', '', 'htmlspecialchars'),'time'=> time(), );在php中就只能使用php的 函數, (可以包含thinkphp為我們定義的函數) , 不要跟mysql中的函數弄混淆了!
thinkphp中的數據庫連接?
你不用自己顯式的去寫數據庫連接代碼, 只要在config.php中寫上數據庫連接配置就行了:
'DB_HOST'=>'127.0.0.1', 'DB_USER'=>'root', 'DB_PWD'=>'', // 注意這里不是password, 根據"寫得最少..."的原則 'DB_NAME'=> '使用的數據庫的名稱', 'DB_PREFIX'=> 'th_',以后在項目中就直接使用模型方法即可, 如:// M('table_name') = new Model('table_name') $id = M('table_name') -> data($data) -> add();// data($數組) 創建一個插入記錄的數據對象 // add方法返回插入記錄的 id號.在控制器( "是一個類") 中的方法里, 寫代碼, 成員方法中的 $this 指的是 當前這個 控制器類的 一個對象實例! 使用的$this-> function(...)是控制器類的 成員方法. 而所有的 "單字母方法" 如:I方法, M()方法等等應該就是全局方法. 不需要$this的!
成功和失敗的方法?
$this->success('成功提示信息', '成功時跳轉的頁面 --- 對應的方法 名稱');
$this-> error('失敗時的提示信息', ['默認的是返回原來的提交頁面'] );
think的刪除數據記錄?
$result = M('table_name')->where('id>0')->delete(); // delete函數必須帶 where條件方法, 否則執行失敗! $result = M('table_name')->where(array('id'=> array('gt',0)))->delete(); $result 是表示刪除的記錄數;因為think不允許不帶條件的 直接調用delete方法, 那樣是很危險的!think的查詢?
M('table_name')->select(); // 查詢全部記錄;form表單中, action="", 默認提交到當前頁面.
模板中的{} 就相當于<?php ... ?>, 是一種簡單寫法:
輸出不同的 "模板值"方法不同:
- 如果是變量, 直接{$var}就可以輸出;
- 如果是函數, 需要加冒號: {:function()}
- 如果是函數, 不加冒號, 會執行,但沒有輸出: {func()}, {~func()};
- 輸出session: {@var}
- 輸出cookie: {#var}
- 輸出get變量: {.var}, 輸出post變量: {^var}, 輸出常量{*ar}, 輸出配置變量{&ar}等等
從控制器方法中, 分配變量到模板有三種方法:
$this->assign('a',11);$this->a = 11;$this->assign('a', 11)->display();// 分配變量的時候, 不需要加$ 符合.thinkphp的大括號和尖括號
大括號{ }表示輸出變量或函數,
尖括號<> 表示think的Tag lib標簽庫, 跟html的標簽一樣的. 由think的模板引擎來解析.如:
那么, 如果你知道是解析的數組, 不需要解析判斷 對象的時候, 可以提高解析速度, 配置為: 'TMPL_VAR_IDENTIFY'=>'array', 即可!
在thinkphp的模板中使用函數?
{$v.time|date="y-m-d H:i",###}在模板中對 前面的變量內容 使用函數, 要用 豎線| 即可 = 表示傳遞參數, 多個參數之間用逗號風隔, 前面的變量, 用###表示.隨機數: 不要用rand, 而是用 mt_rand(min, max): mt表示: mersenne twister算法, 比rand快.好.
===============================================================
thinkphp的項目分組
同樣是建一個單入口index.php, 只不過名字叫做 App
// 注意, 這個單一入口文件index.php, 以及生成的項目文件夾, 其實跟之前的任何一個 "非分組" 的項目入口文件都是完全相同的
// 并不是你叫App就有什么不同, 真的要使它們成為 "分組"項目, 發生不同的是你隨后的配置和分別創建的子項目文件夾!
其他配置/ 文件夾, 都是創建 相應 "子項目" 的配置 或者文件夾.
主要有 幾個 地方: Conf, Common, Lib, Model等等.
第一, Conf 下的config.php是所有項目都可以 公用 的配置, 而在Conf下創建對應的分組項目文件夾及其配置, 則是單獨有效的:Conf/Index/config.php(僅僅前臺有效), Conf/Admin/config.php(僅后臺有效)第二, Lib控制器下的控制器:刪除原來創建的 IndexAction.class.php;分別創建Index 和Admin文件夾分別在對應的文件夾下創建 IndexAction.class.php則對應著對應的項目 控制器.../* !!!!!!!!!!!!!!!!!!!
在Conf/config.php下配置 項目分組: return array('APP_GROUP_LIST' => 'Index, Admin, Member, Register....','DEFAULT_GROUP' => 'Index', // 注意是default group不是group _ default. );第三, common文件夾下的公用文件common下的common.php中的函數, 所有項目都可以使用, 是公用的而在common文件夾下分別創建的Index/ Admin文件夾下的 分別創建的 function.php( 特別注意, 不是common.php!!!)則只能是對應的項目可以使用的函數!第四, Tpl模板分組:在App/Tpl目錄下分別創建Index和Admin文件夾, 作為分組項目的模板文件夾,然后再創建控制器對應的文件夾Index 和 方法對應的模板文件index.html如:App/Tpl/Index(分組子項目)/Index(對應控制器)/index.html(對應方法)App/Tpl/Admin/Index/index.html......為了減少模板 文件 對應的目錄層次太深, 可以配置 'TMPL_FILE_DEPR' => '_'這樣就可以將 控制器和 模板文件名之間用 上面定義的符合 連接起來, 從而 減少一個 控制器的目錄.比如, 這時后的模板文件的目錄就是: App/Tpl/Index/Index_index.html===============================================================
轉載于:https://www.cnblogs.com/bkylee/p/5303439.html
總結
以上是生活随笔為你收集整理的thinkphp-许愿墙-2的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 量子力学初步
- 下一篇: css3 斜切角/斜边的实现方式来自BA