用的是if标签,而不是用empty标签,因为还有else的情况。
<code><if condition="!isset($_SESSION['user'])"> <li><button><a href="">登 录</a></button></li> <li><button><a href="">注 册</a></button></li> <else></else> <li> <a href="">{$Think.session.user}</a> </li> </if></code>
实测以上这样写的是可以的。
但是,condition部分我试过几种,为什么不可以?
1)
或者
2)
或者
3)
或者
4)
我想知道的是:为什么上面四种方式都不行?
如果我不想用$_SESSION,想用Think.session.user的话,condition部分应该怎样写?
用的是if标签,而不是用empty标签,因为还有else的情况。
<code><if condition="!isset($_SESSION['user'])"> <li><button><a href="">登 录</a></button></li> <li><button><a href="">注 册</a></button></li> <else></else> <li> <a href="">{$Think.session.user}</a> </li> </if></code>
实测以上这样写的是可以的。
但是,condition部分我试过几种,为什么不可以?
1)
或者
2)
或者
3)
或者
4)
我想知道的是:为什么上面四种方式都不行?
如果我不想用$_SESSION,想用Think.session.user的话,condition部分应该怎样写?
empty也有else得用法啊
可以这样试试:
<code><if condition="$Think.session.user neq null"> <li> <a href="">{$Think.session.user}</a> </li> <else></else> <li><button><a href="">登 录</a></button></li> <li><button><a href="">注 册</a></button></li> </if></code>
<if condition="$Think.session.user eq ''"></if>
tp有个empty标签可以判断是否为空
你可以在控制器中判断session("user")是否存在,session中存在就给模板传递 user 参数,不存在就不传递 user参数,在模板中,判断$user变量是否存在。
如在Action中
<code>// TP中,session是默认开启的,通过session("?sessionName")的方式进行判断,session存在就返回true,反之就返回false if(session("?user")){ $this->assign("user",session("user")); }</code>
然后在模板中判断
<code><if condition="isset($user)"> 已登录的html code <else></else> 未登录的html </if></code>