ThinkPHP基礎知識

Dir發表於2021-04-07

ThinkPHP5.0 常用目錄結構



資料庫的備份(匯出)

  1. 進入命令列
    win+r 輸出cmd 然後回車
  2. 執行匯出
    mysqldump -u使用者名稱 -p 資料庫名稱 > 匯出檔案路徑

資料庫的恢復(匯入)

  1. 登入MySQL
    mysql [-h主機名] -u使用者名稱 -p 然後回車
  2. 建立資料庫
    create database tpshop;
  3. 選中資料庫
    use tpshop;
  4. 將備份的檔案匯入當前資料庫
    source D:/dir_20210407.sql;
  5. 檢視資料表
    show tables;

1 think模板引擎

模板引擎:將PHP中的變數展示到HTML檔案中的機制

1.1 標籤

  1. 普通標籤
  2. 標籤庫標籤
    普通標籤與標籤庫標籤 這兩類使用時沒有區別
  3. 自定義標籤
    thinkphp預設的 模板引擎普通標籤標記 與 標籤庫標籤標記 是一對 { },為了有效的與前端js或其他的標記分開,所以改成 {{ }},更改位置在主配置檔案(config.php)中,將“tpl_begin”、”taglib_begin” 改成 ‘{{‘ ,”tpl_end”、、”taglib_end”改成 ‘}}’ ,(如下程式碼:)
// 模板引擎普通標籤開始標記
'tpl_begin'    => '{{',
// 模板引擎普通標籤結束標記
'tpl_end'      => '}}',
// 標籤庫標籤開始標記
'taglib_begin' => '{{',
// 標籤庫標籤結束標記
'taglib_end'   => '}}',

1.2 變數的展示

  1. 標量(簡單的變數)
    語法形式:{{$變數名}}
  2. 陣列
    語法形式:{{$陣列['鍵']}}{{$陣列.鍵}}
  3. 物件
    屬性:{{$物件->屬性}}{{$物件:屬性}}
    方法:{{$物件->方法([引數 ....])}}
    {{$物件:方法([引數 ....])}}

2 think模板引擎

2.1 變數調節器

語法格式:{{$變數名|變數調節器}}

  • 日期轉換
    語法格式:
    {{$變數名|date="Y-m-d Hs", ###}}

注意:### TP5.0必須加這三個#,5.0以後的可以不加

程式碼示例:

{{$obj->create_time|date="Y-m-d H:i:s",###}}
  • 大小寫轉換
    語法格式:
    小寫:{{$變數名|strtolower}}
    大寫:{{$變數名|strtoupper}}
    首字母大寫:{{$變數名|ucfirst}}
    示例:
    {{$hi|strtolower}}
    {{$hi|strtoupper}}
    {{$hi|ucfirst}}
  • 字串擷取
    語法格式:{{$變數名|substr=擷取的起始位置,[擷取長度]}}
    示例:
    {{$hi|substr=0,5}}
    {{$hi|substr=6}}
    {{$name|mb_substr=0,3}}
    {{$name|mb_substr=4}}
  • 宣告:
    ThinkPHP模板引擎的變數調節器支援”管道”的寫法
    (管道:上一個命令的返回結果,是下一個命令輸入)
    示例:
    {{$變數|strtolower|substr=0,5}}
    <!-- 先小寫,再取0到5 -->

2.2 保留變數

所謂的保留變數是指不需要經過assign賦值,在模板中能直接訪問的變數。

2.2.1 $Think

  • 訪問常量
    語法:{{$Think.常量名}}
    示例:
    {{$Think.THINK_VERSION}}
  • 訪問預定義變數
    語法:
    {{$Think.get}} 相當於 $_get
    {{$Think.get.鍵}} 相當於 $_get['鍵]
    可以取 $_GET $_POST $_FILES $_COOKIE $_SESSION …
    示例:
    {{$Think.get.username}}
  • 訪問配置
    語法:{{$Think.config.配置項}}

示例:

{{$Think.config.default_controller}}
  • 多級配置
    語法:{{$Think.config.一級配置.二級配置....}}
    示例:
    {{$Think.config.paginate.list_rows}}

2.2.2 $Request

  • 獲取當前模組名
  • 獲取當前控制器名
  • 獲取當前方法名
    示例:
    <!-- 獲取當前模組名 -->
    {{$Request.module}}
    <!-- 獲取當前控制器名 -->
    {{$Request.controller}}
    <!-- 獲取當前方法名 -->
    {{$Request.action}}

2.3 三目運算子

語法形式:
{{$變數 ? 真值 : 假值}}
示例程式碼:

{{$Think.config.app_debug ? '開啟了' : '沒有開啟'}}

2.4 流程控制語句

  • if
    語法:
    {{if condition="條件表示式"}}
    {{else if codition="條件表示式2"}}
    {{else /}}
    {{/if}}
    示例:
    {{if condition="$Think.config.app_debug"}}
     開啟了
    {{else /}}
     沒開啟
    {{/if}}
  • VOLIST標籤
    語法:
    {{volist name="變數" id="迴圈變數名" key="迴圈變數索引"}}
     {{$迴圈變數名}}
    {{/volist}}
    示例:
    <table border=1;>
     <tr>
        <td>索引</td>
        <td>使用者名稱</td>
        <td>時間</td>
     </tr>
     {{volist name="users" id="vo"}}
     <tr {{if condition="$key==0"}} style="background-color: lightblue;" {{/if}}>
        <td>{{$key}}</td>
        <td>{{$vo.username}}</td>
        <td>{{$vo.create_time|date="Y-m-d Hs",###}}</td>
     </tr>
     {{/volist}}
    </table>

2.5 檔案引入

  • 替換字元
    '__STATIC__'  對應public/static/目錄
    '__CSS__'  對應public/static/css/目錄
    '__JS__'  對應public/static/js/目錄

示例:

<link rel="stylesheet" href="__STATIC__/bootstrap/css/bootstrap.css">
  • load
    語法:
    {{load file="路徑"}}
    load可以引入css,js和圖片
    示例:
    {{load file="__STATIC__/bootstrap/css/bootstrap.css"}}
    {{load file="__JS__/jquery.js"}}
    {{load file="__STATIC__/bootstrap/js/bootstrap.js"}}

3 控制器

控制器位置:application/模組/controller/控制器.php
基類:use think\Controller;
基類位置:tp/thinkphp/library/think/Controller.php

模板相關

assign()
將PHP中的變數賦值給模板
a. 單個賦值:
語法:assign(模板中的變數名, PHP中的變數名)
示例:

$hi = "Hello,world";
$user = [
   'username' => 'sam',
   'create_time' => 1552555525
];
// 將變數賦值給模板
$this->assign('hi',$hi);
$this->assign('user',$user);

b. 多個賦值
語法:

assign([
   '變數名1' => $變數1,
   '變數名2' => $變數2,
   .......
]);

示例:

$hi = "Hello,world";
$user = [
   'username' => 'sam',
   'create_time' => 1552555525
];
$this->assign([
   'hi' => $hi,
   'user' => $user,
]);

fetch()
呼叫模板
預設的模板路徑:模組/view/控制器/方法.html
注意:一定要寫return, 不寫return將返回空白頁面
示例:

return $this->fetch();

本作品採用《CC 協議》,轉載必須註明作者和本文連結