ThinkPHP5 模型時間戳設定
單獨在模型裡面設定(推薦)
protected $autoWriteTimestamp = true; // int 型 protected $autoWriteTimestamp = 'datetime'; // datetime 型別 protected $autoWriteTimestamp = false; // 關閉自動寫入時間戳 protected $updateTime = false; // 只關閉自動寫入update_time欄位
在config裡新增全域性設定
/ 開啟自動寫入時間戳欄位(官方手冊這麼說,自己並沒有測試出來)
'auto_timestamp' => true, // 預設為int型
'auto_timestamp' => 'datetime', // datetime類
'auto_timestamp' => false, // 關閉全域性自動寫入時間欄位
如果資料表欄位不是預設值(假設資料庫欄位名為create_at和update_at)
// 定義時間戳欄位名
protected $createTime = 'create_at'; // 預設的欄位為create_time 和 update_time
protected $updateTime = 'update_at';
ThinkPHP5.1中使用模板繼承
首先將一個滿的html頁面複製到view/public/base.html
中,接著將頭部(__header
),導航欄(__nav
),左側選單欄(__left
),底部(__footer
),js(__js
)都分離到單獨的html裡
在
base.html
中使用{include file="public/__header" /}
這樣的方式進行引入頭部,其他部分都照這個例子進行引入找到
base.html
中屬於右側內容部分的用block
進行包裹起來
{block name="content"}
內容
{/block}
用block
將公共可改部分進行包裹,後面用於繼承的時候,可以換成自己想寫的內容用於替換。
之後其他的頁面的使用方法:
{extend name="public/base" /}
...其他block
{block name="content"}
主要內容區域
{/block}
如果不需要改動
block
中原有的內容:可以不寫出那個block
,或者加入{__block__}
,它表示原有程式碼。
案例:
{block name="content"}
{__block__}
{/block}
下載驗證碼外掛
這是配合ThinkPHP 5.1版本的
composer require topthink/think captcha=2.0.*
在Login
控制器裡新增verify()
方法用於驗證碼
public function verify()
{
$config = [
// 驗證碼字型大小
'fontSize' => 16,
'length' => 3,
// 關閉驗證碼雜點
'useNoise' => false,
'useCurve' => false,
];
$captcha = new Captcha($config);
return $captcha->entry();
}
在html頁面中引入
<img src="{:url('Login/verify')}" class="reloadverify">
點選驗證碼圖片隨機變換的JS,挺不錯的點選切換方法
<script>
$(function () {
var verifyimg = $(".reloadverify").attr("src");
$(".reloadverify").click(function () {
if (verifyimg.indexOf('?') > 0) {
$(".reloadverify").attr("src", verifyimg + '&random=' + Math.random());
} else {
$(".reloadverify").attr("src", verifyimg.replace(/\?.*$/, '') + '?' + Math.random());
}
});
});
</script>
這裡的
reloadverify
必須要在img
中進行定義class
ThinkPHP5配合小程式實現跨域
在router.php開頭直接加入
header('Access-Control-Allow-Origin: *');
header("Access-Control-Allow-Headers:Origin, X-Requested-With, Content-Type, Accept");
header('Access-Control-Allow-Methods: POST,GET');
if(request()->isOptions()){
exit();
}
在基類中的初始化方法理進行寫入跨域程式碼
tp5.0
/**
* 初始化方法
*/
protected function _initialize()
{
parent::_initialize();
// 處理跨域
//允許的源域名
header("Access-Control-Allow-Origin: *");
//允許的請求頭資訊
header("Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept, Authorization");
//允許的請求型別
header('Access-Control-Allow-Methods: GET, POST, PUT,DELETE,OPTIONS,PATCH')
}
tp5.1 initialize()沒有前下劃線
在入口檔案進行處理
public/index.php
// 處理跨域預檢請求
if ($_SERVER['REQUEST_METHOD'] == 'OPTIONS') {
// 允許的源域名
header("Access-Control-Allow-Origin: *");
// 允許的請求頭資訊
header("Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept, Authorization");
//允許的請求型別
header('Access-Control-Allow-Methods: GET, POST, PUT,DELETE,OPTIONS,PATCH');
exit;
}
本作品採用《CC 協議》,轉載必須註明作者和本文連結