ThinkPHP基礎知識(一)

来源:https://www.cnblogs.com/houbingxu2014025681/archive/2018/01/22/8330345.html
-Advertisement-
Play Games

1.入口文件中定義的內容 2.U方法的參數規則 ('地址表達式',['參數'],['偽靜態尾碼'],['顯示功能變數名稱']) 3.如何判斷請求類型,常用的請求方式有哪兩種,I方法的參數規則? 註意:變數類型不區分大小寫。 變數名則嚴格區分大小寫。 預設值和過濾方法均屬於可選參數。 4.成功和失敗,重定向跳 ...


1.入口文件中定義的內容

// 檢測PHP環境
if(version_compare(PHP_VERSION,'5.3.0','<')) die('require PHP > 5.3.0 !');
// 開啟調試模式 建議開發階段開啟 部署階段註釋或者設為false
define('APP_DEBUG',True);
// 定義應用目錄
define('APP_PATH','./Application/');
// 引入ThinkPHP入口文件
require './ThinkPHP/ThinkPHP.php';
//定義根目錄的絕對地址
define('ROOT',str_replace("\\","/",dirname(__FILE__)));

2.U方法的參數規則

('地址表達式',['參數'],['偽靜態尾碼'],['顯示功能變數名稱'])

地址表達式[模塊/控制器/操作#錨點@功能變數名稱]?參數1=值1&參數2=值2...

3.如何判斷請求類型,常用的請求方式有哪兩種,I方法的參數規則?

判斷請求類型:REQUEST_METHOD
常見的請求方式:get post
I方法的參數規則:I('變數類型.變數名',['預設值'],['過濾方法'],['額外數據源'])

  註意:變數類型不區分大小寫。
  變數名則嚴格區分大小寫。
  預設值和過濾方法均屬於可選參數。

4.成功和失敗,重定向跳轉的方法以及參數規則。

success('成功條件','跳轉地址',‘跳轉時間’);

註意:方法的預設跳轉地址是$_SERVER["HTTP_REFERER"]

error('錯誤提示','跳轉地址',‘跳轉時間’);

註意:預設的等待時間success方法是1秒,error方法是3秒

重定向到New模塊的Category操作
重定向:$this->redirect('New/category', array('cate_id' => 2), 5, '頁面跳轉中...');

重定向到指定的URL地址

redirect('/New/category/cate_id/2', 5, '頁面跳轉中...')

5.URL的四種模式,簡述每種形式的規則

普通模式:http://localhost/?模塊=home&控制器=user&操作=login&var=value
pathinfo模式:http://localhost/index.php/home/user/login/var/value/
REWRITE模式:http://localhost/home/user/login/var/value
相容模式:http://localhost/?s=/home/user/login/var/value

6.TP常用的配置文件有哪幾個?配置文件的載入順序依次是什麼?

配置文件:1.慣例配置:框架內置配置文件(位於ThinkPHP/Conf/convention.php
     2.應用配置:應用配置文件也就是調用所有模塊之前都會首先載入的公共配置文件(預設位於Application/Common/Conf/config.php
     3.模塊配置:每個模塊會自動載入自己的配置文件(位於Application/當前模塊名/Conf/config.php
載入順序:慣例配置--->應用配置--->模塊配置

7.模版渲染display方法的參數規則

display('[模板文件]'[,'字元編碼'][,'輸出類型']);
模板文件的寫法支持下麵幾種:

8.常用的模版內置標簽以及在模版中使用的示例,舉出5個!

1.<foreach name='' item='' key=''></foreach>
2.<volist name='' id=''></volist>
3.<for start="開始值" end="結束值" comparison="" step="步進值" name="迴圈變數名" ></for>
4.比較標簽:
<eq name="name" value="value">value</eq>
5.範圍判斷標簽:<in name="id" value="1,2,3">id在範圍內</in>
6.<if condition="$value eq $k">value</if>
7.
<empty name="name">name為空值</empty>
8.
<import file="Js.Util.Array" basepath="其他目錄" />//起始路徑是Public目錄

9.模版包含的參數規則以及舉例說明

include標簽用法:<include file='模版表達式或者模版文件1,模版表達式或者模版文件2,...' />
          1.使用模板表達式:例如: 

          2.使用模板文件:可以直接包含一個模板文件名(包含完整路徑),例如:
<include file="./Application/Home/View/default/Public/header.html" /
          
          3.傳入參數:<
include file="Public/header" title="ThinkPHP框架" keywords="開源WEB開發框架" />
                  模板中使用:

10.三大自動的參數規則

欄位映射:protected $_map=array(
        '表單中的名'=>‘欄位名’//把表單中的name名映射到數據表中的欄位名
      );
自動驗證:protected $_validate=array(
        array('欄位名','驗證規則','提示信息','驗證條件','附加規則','驗證時間'),
      );
自動完成:protected $_auto=array(
        array('欄位名','驗證規則','驗證時間','附加規則'),
      );

11.舉例描述上傳類在控制器中調用的全過程代碼(要求包含控制器的代碼以及模型類新增數據到資料庫的全部代碼),並說明表單中需要註意的內容!

模型類:
public function doUpload(){
if(empty($config)){
$config = array(
'maxSize' => 3145728,
'rootPath' => './Public/',//保存根路徑,一定要重新設置,否則無法找到根路徑
'savePath' => 'Uploads/',
'saveName' => array('uniqid',''),
'exts' => array('jpg', 'gif', 'png', 'jpeg'),
'autoSub' => true,
'subName' => array('date','Ymd'),
);
}
$upload=new Upload($config);
$info=$upload->upload();
if(!$info){
$this->error=$upload->getError();
return false;
}
foreach($info as $key=>$v){
$pic[$key]=$v['savepath'].$v['savename'];
}
return $pic;
}
控制器:
$pic=$this->work->doUpload();
$_POST['圖片欄位']=$pic['圖片欄位'];//添加到資料庫中
表單中需要註意的內容
1.<form action="" method="post" enctype="multipart/form-data" ></form>
2.<input type="file" name="" value="">
3.註意savepath路徑。




您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 互聯網移動業務服務端系統架構設計演化------------------------------------------------------------------今天先到這兒,希望對您在系統架構設計與評估,團隊管理, 項目管理, 產品管理,團隊建設 有參考作用 , 您可能感興趣的文章: 國際化... ...
  • 上次談到了Java的基本數據類型,今天接著聊Java的變數、運算符。 一、變數 1、變數的分類 變數分為成員變數、局部變數和常量,其中成員變數又分為實例變數、類變數。 2、變數的定義 語法:變數類型(可以是基本類型,也可以是其他) 變數名 = 變數值 英文;結尾。 2.1 可以單次聲明一個變數,也可 ...
  • 這篇文章我們開始分析LinkedHashMap的源碼,LinkedHashMap繼承了HashMap,也就是說LinkedHashMap是在HashMap的基礎上擴展而來的,因此在看LinkedHashMap源碼之前,讀者有必要先去瞭解HashMap的源碼,可以查看我上一篇文章的介紹《Java集合系 ...
  • Django視圖(一) 一、 概述 作用:視圖接受web請求,並相應請求 本質:視圖是自定義的一個python中的函數 響應內容:正常視圖,重定向視圖,錯誤視圖(404,500,400) 響應過程: 二、 url配置 配置流程 url的反向解析 三、 視圖函數 1、 概述 其本質是一個函數,一般在v ...
  • 本文主要給大家分享了Spring boot 對靜態資源的處理方式,Spring boot 預設可以訪問classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/四個目錄下的靜態資... ...
  • std::function Lambda 表達式的本質是一個函數對象。當 Lambda 表達式的捕獲列表為空時,Lambda 表達式還能夠作為一個函數指針進行傳遞,例如: #include using foo = void(int); // 定義函數指針, using 的使用見上一節中的別名語法vo... ...
  • 這個案例幾乎用到了前50篇的所有內容,實現一個簡易的家庭記賬軟體 功能:賬務增刪改查,按條件查詢 需要的jar包: commons-dbcp-1.4.jar commons-pool-1.5.6.jar mysql-connector-java-5.1.37-bin.jar commons-dbut ...
  • Consumer Acknowledgements and Publisher Confirms 消費者到RabbitMQ的投遞處理確認在AMQP 0-9-1中被稱之為“acknowledgements”;而RabbitMQ給生產者的確認是協議的擴展,這種協議擴展被叫做“publisher conf ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...