相信用过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.在
3.在模板中写
,然后在里面直接编写php代码来判断$_SESSION
4.在Action中将$_SESSION变量通过assign()方法赋值给模板
5.在自定义函数库中,新建一个函数用来返回$_SESSION变量,然后在模板文件中使用{$变量命 | 函数名}来将函数返回的$_SESSION赋给模板中的一个变量
以上五种方法皆可,你也可以想自己的办法。