相信用過thinkphp的用戶都知道thinkphp的模型可以完成很多輔助功能,比
如自動驗證、自動完成等,今天在開發中遇到自動完成中需要獲取session值
然後自動賦值的功能,具體看代碼;
class ArticlelModel extends Model {
protected $_auto = array (
array('addtime','time',1,'function'),
array('username','getName',1,'callback')
);
//這個函數獲取session裡的name值
protected function getName(){
return $_SESSION["name"];
}
}
這裡需要注意最後一個參數function和callback的區別;
function:使用函數,會自動去Common/common.php去尋找對應的函數;
callback:使用在當前模型中定義的回調方法
更多編程視頻教程下載可到:http://www.jscto.net
$User=new Model('Admin'); // 問題在這一句代碼。Model()或M()方法實例化基礎模型,而你在模型中添加了自動驗證,屬於自定義模型。因此自動驗證部分不會又作用。// 將上一句按如下修改$User=new AdminModel(); // 直接實例化為你的自定義模型// 或者更簡單的$User=D('Admin');// 詳細內容參考官方文檔 6.2 模型實例化
方法很多,靈活運用,例如
1.在模板中調用{$Think.session}
2.在<php></php>標簽直接編寫php代碼來判斷$_SESSION
3.在模板中寫<?php ?>,然後在裡面直接編寫php代碼來判斷$_SESSION
4.在Action中將$_SESSION變量通過assign()方法賦值給模板
5.在自定義函數庫中,新建一個函數用來返回$_SESSION變量,然後在模板文件中使用{$變量命 | 函數名}來將函數返回的$_SESSION賦給模板中的一個變量
以上五種方法皆可,你也可以想自己的辦法。