Thinkphp5.0第四篇

刪除數據

當前模型刪除

$user=UserModel::get(1);
   if($user->delete()){return '刪除成功';}
   else{return '刪除失敗';}

根據主鍵刪除單條數據

if(UserModel::destroy(2))return '刪除成功';

else return '刪除失敗';

根據主鍵刪除多條數據

if(UserModel::destroy([3,4])){return '刪除多條數據成功';}else{return '刪除多條數據失敗';}

條件刪除

if(UserModel::destroy(['name'=>'陳國鬆']))return '刪除成功';
else return '刪除失敗';

經過數據庫類刪除

$result=UserModel::where('id','>',6)->delete();
if($result){
    return '刪除成功';
}
else
return '刪除失敗';
}

視圖

視圖實例化

視圖功能由 \think\View 類配合視圖驅動(模板引擎)類一塊兒完成,目前的內置模板引擎包含PHP原生模板
和Think模板引擎。
由於新版的控制器能夠無需繼承任何的基礎類,所以在控制器中如何使用視圖取決於你怎麼定義控制器。php

繼承 \think\Controller

若是你的控制器繼承了 \think\Controller 類的話,則無需本身實例化視圖類,能夠直接調用控制器基礎
類封裝的相關視圖類的方法。html

下面的方法能夠直接被調用:thinkphp

方法 說明
fetch 渲染模板輸出
display 渲染內容輸出
assign 模板變量賦值
engine 初始化模板

assign方法

賦值給模板變量數據庫

$name='個人滑板鞋';
$email='huabanxie@qq.com';
$this->assign('name',$name);
$this->assign('email',$email);

批量賦值緩存

$this->assign(
['name'=>$name,'email'=>$email]
);

fetch 渲染模板輸出cookie

該方法默認渲染的是view/index/index.htmlsession

return $this->fetch();
return $this ->fetch('user/user');
//view下的user下的user.html
return $this->fetch('index',['name'=>'thinkphp','email'=>'thinkphp@qq.com']);//給index.html傳賦給的值

助手函數view也能夠框架

return view('index',['name'=>'陳國鬆','email'=>'chenguosong@qq.com']);

模板

ThinkPHP內置了一個基於XML的性能卓越的模板引擎,這是一個專門爲ThinkPHP服務的內置模板引擎,使用了XML標籤庫技術的編譯型模板引擎,支持兩種類型的模板標籤,使用了動態編譯和緩存技術,並且支持自定義標籤庫。函數

模板定位

每一個模塊的模板文件是獨立的,爲了對模板文件更加有效的管理,ThinkPHP對模板文件進行目錄劃分,性能

默認的模板文件定義規則是:

視圖目錄/控制器名(小寫)/操做名(小寫)+模板後綴默認的視圖目錄是模塊的view目錄,框架的默認視圖文件後綴是 .html

模板標籤

普通標籤

​ 普通標籤用於變量輸出和模板註釋,普通模板標籤默認以 { 和 } 做爲開始和結束標識,而且在開始標記緊
跟標籤的定義,若是之間有空格或者換行則被視爲非模板標籤直接輸出。 例如: {$name} 、
{$vo.name} 、 {$vo['name']|strtoupper} 都屬於正確的標籤,而 { $name} 、
{ $vo.name} 則不屬於。

能夠經過修改config.php裏面的模板設置開始和結束標識

系統變量

系統變量輸出

{$Think.server.script_name} // 輸出$_SERVER['SCRIPT_NAME']變量{$Think.session.user_id} // 輸出$_SESSION['user_id']變量{$Think.get.pageNumber} // 輸出$_GET['pageNumber']變量{$Think.cookie.name} // 輸出$_COOKIE['name']

支持輸出 $_SERVER 、 $_ENV 、 $_POST 、 $_GET 、 $_REQUEST 、 $_SESSION 和$_COOKIE 變量

常量輸出

在控制器文件裏定義的常量

{$Think.APP_PATH}

輸出配置參數

{$Think.config.default_module}{$Think.config.default_controller}

使用函數

{$data.name|md}

編譯後是

<?php echo (md5($data['name']));

若是函數有多個參數須要調用,則使用:

{$create_time|date="y-m-d",###}

表示date函數傳入兩個參數,每一個參數用逗號分割,這裏第一個參數是 y-m-d ,第二個參數是前面要輸出的
create_time 變量,由於該變量是第二個參數,所以須要用###標識變量位置,編譯後的結果是:

<?php echo (date("y-m-d",$create_time)); ?>

若是前面輸出的變量在後面定義的函數的第一個參數,則能夠直接使用:

{$data.name|substr=0,3}

表示輸出

<?php echo (substr($data['name'],0,3)); ?>

雖然也能夠使用:

{$data.name|substr=###,0,3}

但徹底沒用這個必要。
還能夠支持多個函數過濾,多個函數之間用「|」分割便可,例如:

{$name|md5|strtoupper|substr=0,3}

編譯後的結果是:

<?php echo (substr(strtoupper(md5($name)),0,3)); ?>

使用函數函數會按照從左到右的順序依次調用。
若是你以爲這樣寫起來比較麻煩,也能夠直接這樣寫:

{:substr(strtoupper(md5($name)),0,3)}

變量輸出使用的函數能夠支持內置的PHP函數或者用戶自定義函數,甚至是靜態方法。

相關文章
相關標籤/搜索