thinkphp 模板布局 传参
tpl下面有个public/header.html我在网站很多页面都需要调用这个头部,用的代码是<includefile="Public:header"/>header....
tpl下面有个public/header.html
我在网站很多页面都需要调用这个头部,用的代码是<include file="Public:header" />
header.html代码用来检测用户是否登录,如果登录了,就显示“首页|退出”,如果未登录,则显示“首页|注册|登录”
代码是
<empty name="data">
<a href='__APP__'>首页|</a>
<a href='__APP__/Login'>登录</a>
<a href="__APP__/Register">注册</a>
<else/>
<a href='__APP__'>首页|</a>
你好<a style="color:blue;">{$data}</a>
<a href="__APP__/Ucenter/loginout">退出</a>
</empty>
比如网站首页,action里代码是
$data=session('name');
if ($data){
$this->data=$data;
}
把是否有session传递到header.html里,请问,因为有很多页面都要调用header.html,难道要在所有的action里都加上
$data=session('name');
if ($data){
$this->data=$data;
}
这段代码吗?请问有什么方法可以集中引用的。谢谢 展开
我在网站很多页面都需要调用这个头部,用的代码是<include file="Public:header" />
header.html代码用来检测用户是否登录,如果登录了,就显示“首页|退出”,如果未登录,则显示“首页|注册|登录”
代码是
<empty name="data">
<a href='__APP__'>首页|</a>
<a href='__APP__/Login'>登录</a>
<a href="__APP__/Register">注册</a>
<else/>
<a href='__APP__'>首页|</a>
你好<a style="color:blue;">{$data}</a>
<a href="__APP__/Ucenter/loginout">退出</a>
</empty>
比如网站首页,action里代码是
$data=session('name');
if ($data){
$this->data=$data;
}
把是否有session传递到header.html里,请问,因为有很多页面都要调用header.html,难道要在所有的action里都加上
$data=session('name');
if ($data){
$this->data=$data;
}
这段代码吗?请问有什么方法可以集中引用的。谢谢 展开
3个回答
展开全部
LZ ,在Lib/Action目录下新建一个父类控制器,比如就叫ExtendAction.class.php,让这个父类控制器继承 Action ,然后在ExtendAction里写一个方法_initialize,代码如下:
class ExtendAction extends Action {
Public function _initialize(){
$data=session('name');
if ($data){
$this->data=$data;
}
}
}
之后,在其他Action里继承这个父类控制器ExtendAction,比如IndexAction,代码:
class IndexAction extends ExtendAction {
public function index(){
$this->display();
}
}
这样一来,所有继承了ExtendAction 的Action都会执行到父类控制器里的_initialize方法.
thinkphp系统Action类提供了一个初始化方法_initialize接口,可以用于扩展需要,_initialize方法会在所有操作方法调用之前首先执行.
希望帮到你,纯手写,望采纳!
展开全部
楼主是通过判断session的方式验证是否登录,
那为什么不直接在模板中进行呢?这样可以避免action中的传参
<if condition="$Think.session.name eq null">
<a href='__APP__'>首页|</a>
<a href='__APP__/Login'>登录</a>
<a href="__APP__/Register">注册</a>
<else/>
<a href='__APP__'>首页|</a>
你好<a style="color:blue;">{$data}</a>
<a href="__APP__/Ucenter/loginout">退出</a>
</if>
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你创建一个父类控制器, 然后所有的控制器都继承这个控制器,在父类控制器里你重写_initialize这个方法,在这个方法里判断一下用户是否登录, 然后把值assign就可以了, 在模板任何地方都是可以用用到这个值的
追问
请问,怎么创建这个父类控制器呢?新手,不太懂。可以的话请发个相关教程的链接,谢谢。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询