登录或注销CakePHP 3后如何更改导航栏功能?

时间:2017-08-15 17:20:44

标签: php cakephp

我正在尝试更改导航栏功能,因此在用户登录后,“注册”和“登录”按钮将被“注销”的单个按钮取代... 我试过这种方式,但没有成功。

C:\ XAMPP \ htdocs中\ jobfinds \ SRC \模板\元素\ menu.ctp

    <div class="col_12 column"> 
        <ul class="menu">           
               <li> Home</li>   
            <?php if(isset($user['id'])): ?>
               <li>Logout</li>              
            <?php else: ?>          
               <li>Login</li>   
               <li> Register</li>           
            <?php endif ; ?>
        </ul>       
    </div>

我尝试使用

将$ user传递给login方法中的view
$this->set('user',$user); 

但是menu.ctp无法识别它...... 那我怎么能让它真正起作用呢?

1 个答案:

答案 0 :(得分:0)

您需要检查控制器是否$this->Auth->user()没有返回null,只需设置您想要的任何变量即可。此外,如果要在元素中使用它,则必须确保在所有操作中正确设置此变量。因此,最佳位置将是AppController中的beforeRender()动作。这是它的样子:

public function beforeRender(Event $event){

    /* --- */

    if (is_object($this->Auth)) {
        if ($this->Auth->user() !== null) {
            $this->set("userIsLoggedIn", true);
        } else {
            $this->set("userIsLoggedIn", false);
        }
    }

    /* --- */

}

在你的元素中:

<?php if(isset($userIsLoggedIn) && $userIsLoggedIn): ?>
    <span>User is logged in</span>
<?php else: ?>
    <span>User is NOT logged in</span>
<?php endif; ?>