素材牛VIP会员
Thinkphp模板中怎样判断session是否为空?
 15***75  分类:ThinkPHP  人气:1711  回帖:6  发布于6年前 收藏

用的是if标签,而不是用empty标签,因为还有else的情况。

<if condition="!isset($_SESSION['user'])">
    <li><button><a href="">登 录</a></button></li>
    <li><button ><a href="">注 册</a></button></li>
   <else />
   <li> <a href="">{$Think.session.user}</a></li>
   </if>

实测以上这样写的是可以的。
但是,condition部分我试过几种,为什么不可以?
1)<if condition="Think.session.user==''">
或者
2)<if condition="Think.session.user==null">
或者
3)<if condition="!Think.session.user">
或者
4)<if condition="Think.session.user==false">

我想知道的是:为什么上面四种方式都不行?
如果我不想用$_SESSION,想用Think.session.user的话,condition部分应该怎样写?

 标签:thinkphpphp

讨论这个帖子(6)垃圾回帖将一律封号处理……

Lv5 码农
云***_ CEO 6年前#1

你可以在控制器中判断session("user")是否存在,session中存在就给模板传递 user 参数,不存在就不传递 user参数,在模板中,判断$user变量是否存在。
如在Action中

// TP中,session是默认开启的,通过session("?sessionName")的方式进行判断,session存在就返回true,反之就返回false
if(session("?user")){
    $this->assign("user",session("user"));
}

然后在模板中判断

<if condition="isset($user)">
 已登录的html code
<else/>
未登录的html
</if>
Lv5 码农
zz***25 其它 6年前#2

tp有个empty标签可以判断是否为空

Lv6 码匠
街***铃 JS工程师 6年前#3

可以这样试试:

<if condition="$Think.session.user neq null">
   <li> <a href="">{$Think.session.user}</a></li>
<else />
    <li><button><a href="">登 录</a></button></li>
    <li><button><a href="">注 册</a></button></li>
</if>
Lv6 码匠
wt***00 UI设计师 6年前#4

<if condition="$Think.session.user eq ''">

Lv5 码农
阿***d 交互设计师 6年前#5

empty也有else得用法啊

Lv6 码匠
小***6 JS工程师 6年前#6

直接写php也可以的

<php>
    if(isset($_SESSION['user'])){
        echo 'login html code';
    }else{
        echo 'not login html code';
    }
</php>
 文明上网,理性发言!   😉 阿里云幸运券,戳我领取