'URL_PATHINFO_DEPR'=>'-', //修改URL的分隔符
'TMPL_L_DELIM'=>'<{', //修改左定界符 'TMPL_R_DELIM'=>'}>', //修改右定界符 http://localhost/test/index.php/Index-add-name-wuhao-age-23 http://localhost/test/index.php/Index/index
$user=new Model('User');
$arr=$user->select();
var_dump($arr);
$this->display();
'SHOW_PAGE_TRACE'=>true,//開啟頁面Trace
還有一種簡單實用模型的方式
M() 等效為 new Model();
$m=M('User');
$arr=$m->select();
使用模型的實例可以對數據進行操作,操作的工作一般就是對數據庫進行 增刪改查 CURD
增 -C Create $m->add()
刪 -D Delete $m->delete()
改 -U Update $m->save()
查 -R Read $m->select()
a、模板可以遍歷數組
<volist name='data' id='vo'>
{$vo.id}----{$vo.username}-----{$vo.sex}<br/>
</volist>
b、我們可以開啟調試功能中的page_trace
1.開啟調試功能
define('APP_DEBUG',true);
2.我們需要設置配置文件,開啟頁面trace
'SHOW_PAGE_TRACE'=>true,//開啟頁面Trace
讀取數據
對數據的讀取 Read
$m=new Model('User');
$m=M('User');
select:$m->select(); //獲取所有數據,以數組形式返回
find:$m->find($id); //獲取單條數據
getField(字段名) //獲取一個具體的字段值
$arr=$m->where('id=2')->getField('username');
創建數據
對數據的添加 Create
$m=new Model('User');
$m=M('User');
$m->字段名=值
$m->add(); 返回值是新增的id號
刪除數據
$m=M('User');
$m->delete(2); //刪除id為2的數據
$m->where('id=2')->delete(); 返回值是受影響行數
更新數據
$m=M('User');
$data['id']=1;
$data['username']='ztz2';
$m->save($data); 返回值是受影響行數
CURD演示:






==================================================================================================================================================================================================
查詢方式:
一、普通查詢方式
a、字符串
$arr=$m->where("sex=0 and username='gege'")->find();
b、數組
$data['sex']=0;
$data['username']='gege';
$arr=$m->where($data)->find();
注意:這種方式默認是and的關系,如果使用or關系,需要添加數組值:$data['_logic']='or';
二、表達式查詢方式
$data['id']=array('lt',6); $arr=$m->where($data)->select();
EQ 等於,NEQ不等於, GT 大於,EGT大於等於, LT 小於,ELT小於等於,LIKE 模糊查詢
$data['username']=array('like','%ge'); $arr=$m->where($data)->select();
NOTLIKE
$data['username']=array('notlike','%ge%'); $arr=$m->where($data)->select();
注意:如果一個字段要匹配多個通配符
$data['username']=array('like',array('%ge%','%2%','%五%'),'and'); //如果沒有第三個值,默認關系是or關系
BETWEEN
$data['id']=array('between',array(5,7)); $arr=$m->where($data)->select();
//SELECT * FROM `tp_user` WHERE ( (`id` BETWEEN 5 AND 7 ) )
$data['id']=array('not between',array(5,7)); $arr=$m->where($data)->select();
IN
$data['id']=array('in',array(4,6,7)); $arr=$m->where($data)->select();
//SELECT * FROM `tp_user` WHERE ( `id` IN (4,6,7) )
$data['id']=array('not in',array(4,6,7)); $arr=$m->where($data)->select();
//SELECT * FROM `tp_user` WHERE ( `id` NOT IN (4,6,7) )
三、區間查詢
$data['id']=array(array('gt',4),array('lt',10)); //默認關系是 and 的關系
//SELECT * FROM `tp_user` WHERE ( (`id` > 4) AND (`id` < 10) )
$data['id']=array(array('gt',4),array('lt',10),'or') //關系就是or的關系
$data['name']=array(array('like','%2%'),array('like','%五%'),'gege','or');
四、統計查詢
count //獲取個數;max //獲取最大數;min //獲取最小數;avg //獲取平均數;sum //獲取總和
五、SQL直接查詢
a、query 主要是處理讀取數據的:成功返回數據的結果集,失敗返回boolean false
$m=M();
$result=$m->query("select * from t_user where id >50");
var_dump($result);
b、execute 用於更新個寫入操作:成功返回影響行數,失敗返回boolean false
$m=M();
$result=$m->execute("insert into t_user(`username`) values('ztz3')");
var_dump($result);
'DB_LIKE_FIELDS'=>'title|content' //查詢語句中條件自動變為模糊查詢%%
查詢方式演示:
==================================================================================================================================================================================================
常用連貫操作
1.where 幫助我們設置查詢條件
2.order 對結果進行排序
$arr=$m->order('id desc')->select(); $arr=$m->order(array('id'=>'desc','sex'=>'asc'))->select();
3.limit 限制結果
limit(2,5) limit('2,5') limit(10) //limit(0,10)
4.field 設置查詢字段
field('username as name,id') field(array('username'=>'name','id')
field('id',true) //獲取除了id以外的所有字段
5.table
6.group
7.having
二、補充
alias 用於給當前數據表定義別名 字符串
page 用於查詢分頁(內部會轉換成limit) 字符串和數字
join* 用於對查詢的join支持 字符串和數組
union* 用於對查詢的union支持 字符串、數組和對象
distinct 用於查詢的distinct支持 布爾值
lock 用於數據庫的鎖機制 布爾值
cache 用於查詢緩存 支持多個參數(以後在緩存部分再詳細描述)
relation 用於關聯查詢(需要關聯模型擴展支持) 字符串
validate 用於數據自動驗證 數組
auto 用於數據自動完成 數組
filter 用於數據過濾 字符串
scope* 用於命名范圍 字符串、數組
==================================================================================================================================================================================================
視圖:
一、模板的使用
a、規則
模板文件夾下[TPL]/[分組文件夾/][模板主題文件夾/]和模塊名同名的文件夾[Index]/和方法名同名的文件[index].html(.tpl)
更換模板文件的後綴名(修改配置文件)
'TMPL_TEMPLATE_SUFFIX'=>'.html', //更改模板文件後綴名
b、修改模板文件目錄層次
'TMPL_FILE_DEPR'=>'_', //修改模板文件目錄層次
c、模板主題
'DEFAULT_THEME'=>'your', //設置默認模板主題
需要在TPL下面新建一個your文件夾作為模板主題文件夾
如何動態修改模板主題?
1、在後台准備一個功能,修改config.php文件中的默認模板項
2、通過url傳遞 t=主題 參數可以修改不同的模板
'DEFAULT_THEME'=>'your',//設置默認模板主題
'TMPL_DETECT_THEME'=>true,//自動偵測模板主題
'THEME_LIST'=>'your,my',//支持的模板主題列表
http://localhost/test/index.php/Index/index/t/my http://localhost/test/index.php/Index/index/t/you
二、輸出模板內容
a、display
1.display中沒有參數:$this->display();
2.可以帶參數
$this->display(本模塊文件夾下的其他模板文件);
$this->display('index2');
$this->display(其他文件夾下的模板文件);
$this->display('Public:error'); //注意,僅僅需要在Tpl下有Public文件夾以及其中的error.html即可,不需要一定有Public模塊
$this->display(其他主題下的 文件夾下的 模板文件); //需要開啟主題支持
$this->display('my:Index:index');
$this->display(一個URL路徑);
$this->display('./Public/error.html');
$this->display('./Public/error.html','utf-8','text/xml');
$this->show($content);
3.fetch方法
獲得模板文件中的內容,以字符串形式返回:$content=$this->fetch('Public:error');
4.show方法
不需要模板文件,可以直接輸出模板內容
$content=$this->fetch('Public:error');
dump($content);
$content=str_replace('h1','i',$content);
$this->show($content);
三、模板中的賦值
//$this->assign('name','趙桐正');
$this->name='趙桐正2'; $this->display();
四、模板替換
__PUBLIC__:會被替換成當前網站的公共目錄 通常是 /Public/
__ROOT__: 會替換成當前網站的地址(不含域名)
__APP__: 會替換成當前項目的URL地址 (不含域名)
__GROUP__:會替換成當前分組的URL地址 (不含域名)
__URL__: 會替換成當前模塊的URL地址(不含域名)
__ACTION__:會替換成當前操作的URL地址 (不含域名)
__SELF__: 會替換成當前的頁面URL
更換模板變量規則,修改配置項
'TMPL_PARSE_STRING'=>array( //添加自己的模板變量規則
'__CSS__'=>__ROOT__.'/Public/Css',
'__JS__'=>__ROOT__.'/Public/Js',
),
登錄框實例:
引入擴展類,把ThinkPHP3.1.2_Extend裡面的文件放在D:\wamp\www\test\ThinkPHP\Extend文件夾下。
對應的js和css:
D:\wamp\www\test\Public\Css ·D:\wamp\www\test\Public\Js

==================================================================================================================================================================================================
模板中的變量:
一、變量輸出
1.標量輸出
2.數組輸出
{$name[1]} {$name['k2']} {$name.k1}
3.對象輸出
{$name:k} {$name->k}
二、系統變量










==================================================================================================================================================================================================
URL:
'URL_CASE_INSENSITIVE'=>true,//url不區分大小寫
'URL_HTML_SUFFIX'=>'html|shtml|xml',//限制偽靜態的後綴
一、URL規則