2、但是你需要传递最新动态的eventID,所以event()函数应该增加接收eventID的内容
3、另外,你显示页面默认显示数据的方法getContentBy2()可以删除,将其内容整合到event()函数中,参考第2点,如果接收到eventID,说明是通过index的最新动态链接过来的,没接收到eventID则是直接访问的
综上所述,我给出event()函数的大致内容
public function event(){
// ... 你原先的内容
// 以下新增内容
$eventID = I("eventID",0,"intval")// 读取eventID,不存在则默认为0
if($eventID){
// 存在,即从index的最新动态链接过来
// ... 你原先index控制器getContent()函数的内容,注意display()那行就不要了
} else {
// 不存在eventID,即直接访问的,那就显示默认内容
// 也就是你原先getContentBy2()函数的内容,注意不用ajax返回,采用assign()赋值即可
}
}
相应的,前台需要修改的有:
①index页面最新动态的超链接
②删除event页面getContentBy2()的js代码
问题分析:
公共控制器和普通的控制器没什么本质上的区别。
在大部分的情况下。就是一个多次继承的关系。
公共控制器继承thinkphp的控制器。实际的控制器再继承公共控制器。
但是有一点需要注意的是,如果把公共控制器写在controller文件夹下的话。外部是能够访问到的。
推荐方案:
如果不是必须的情况下。尽量不要把公共控制器写在controller文件夹内。有以下2个方案。
1、使用分层控制器,这些分层控制器是不能够被URL访问直接调用到的。常用的分层命名为event。
2、使用trait引入的形式也是可以的。这是php5.4的新特性。thinkphp5在控制器内使用use直接引入。
以上2个方案具体实现方法,可以直接查阅thinkphp5的手册。有案例介绍。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)