thinkphp中模型的概念问题

因为以前是用CI的,忽然转来THINKPHP有点不习惯。因为以前CI里,我是将model做为执行和方法封装用,而控制器就象触发器一样。但现在TP里,控制器好像完全只能用于... 因为以前是用CI的,忽然转来THINKPHP有点不习惯。

因为以前CI里,我是将model做为执行和方法封装用,而控制器就象触发器一样。

但现在TP里,控制器好像完全只能用于处理DB。

我建了一个模型

<?php

class isonlineModel extends Model {

private $username,$uid,$ACtype,$lasttime;

/**
* 检查管理员是否在线,如果不在线,自动跳转到登陆控制器
*/
public function __construct(){
import("Think.Util.Session"); //载入session类
if(empty($this->username)
$this->username = Session::get('konaAdminUsername');
if(empty($this->uid))
$this->uid = Session::get('konaAdminUid');
if(empty($this->ACtype))
$this->ACtype = Session::get('konaAdminACtype');

if($this->is_online()===false){
$this->redirect('admin:login');
}else{
//跳到main管理器
$this->redirect('admin:index');
}
}
}

其实就是验证管理员是否登陆,如果是,就到管理界面,否则就到登陆。

这是每一个控制器都必须引入的(放在析构函数那里)。

以下是控制器代码:

<?php
/**
* 后台首页控制器
* @create date : 2010-4-17 22:18
* @update date : 2010-4-17 22:18
*/
class indexAction extends Action {

public function __construct(){
$a = M('isonline');
$a->is_online();
}

错误提示为:
Model:is_online您所请求的方法不存在!

是不是model里不能这样用?=。=

那起不是要巨增控制器的文件长度!?
展开
 我来答
浑水扁舟8733
推荐于2016-09-07 · TA获得超过115个赞
知道答主
回答量:71
采纳率:0%
帮助的人:0
展开全部
我觉的你对thinkphp的model理解不大对,tp的model和你说的ci的model是不一样的
tp里的model是用来封装数据库模型的,而你要实现的是控制用户请求,这已经属于控制器的范畴了,所以不能这样$a = M('isonline');而应该是写一个全局的action,比如globalAction,让它继承tp的action,然后在 globalAction的_initialize()方法中session判断,

然后所有的需要权限判断的Action都继承globalAction,而不是系统的acton,这样每次实例化action的时候都会先检查用户session

我是个初学者,刚接触thinkphp没些天,理解的也不是很透彻,但tp源码就是这么写的,系统Action的构造函数:
public function __construct()
{
//实例化视图类
$this->view = Think::instance('View');
//控制器初始化
if(method_exists($this,'_initialize'))
$this->_initialize();
}
它会检查是否有_initialize方法。。。,有的话就调用initialize
lewkinglove
2010-06-23
知道答主
回答量:48
采纳率:0%
帮助的人:24.2万
展开全部
没必要这么做的. 况且您的isonlineModel中本来就没有is_online函数.
其实你可以在ThinkPHP的Action.class.php中添加一个初始化函数就可以了.
或者使用应用程序插件,
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式