0

我是cakephp 3.0的新手,嘗試讓我的頭部繞過整個auth組件,我試圖在我的模板中使用允許我登錄的按鈕,但是一旦用戶登錄,它就會顯示登出。CakePHP登錄按鈕

這是我目前的HTML代碼

<li><a href="#"><i class="fa fa-user"></i> Login</a></li> 

我曾試着撥打AuthComponent::user()檢查,如果用戶已經登錄,但得到一個錯誤,所以我做了一些進一步researcha,發現這樣做的這種方式,不知道它的正確與否:

   <?php 
       if($this->request->session()->read('Auth.User.id')){ 
        echo $this->Html->link(
         $this->Html->tag('i', '', array('class' => 'fa fa-lock')) . " logout", 
         array('action' => 'logout'), 
         array('escape' => false), 
         array('controller' => 'users') 
         ); 


       }else{ 
        echo $this->Html->link(
         $this->Html->tag('i', '', array('class' => 'fa fa-lock')) . " login", 
         array('action' => 'login'), 
         array('escape' => false), 
         array('controller' => 'users') 
         ); 

       } 



       ?> 

但是我有2個問題。

  1. 登錄不更改註銷一次登錄。
  2. 它劑量不會去到正確的控制器,找到登錄或註銷的功能(沒有找到用戶控制器的鏈接,試圖移動它上面的動作,節選這打破標籤代碼

任何幫助,將不勝感激。

問候 的Syn


[更新 - 工作代碼]

嗨,我現在已經工作的代碼,但是我需要弄清楚如何引導圖標添加到按鈕,任何人都知道如何做到這一點?

我的工作代碼:

  <?php 
      if($this->request->session()->read('Auth.User')) { 
      // user is logged in, show logout..user menu etc 
       echo $this->Html->link('Logout', array('controller'=>'users', 'action'=>'logout')); 
      } else { 
      // the user is not logged in 
       echo $this->Html->link('Login', array('controller'=>'users', 'action'=>'login')); 

      } 

      ?> 

回答

1

我不好,你說的是Glyphicon?

如果是:

$this->Html->link(
    '<span class="glyphicon glyphicon-pencil" aria-hidden="true"></span> Login', 
    array(
     'controller' => 'users', 
     'action' => 'login', 
     ), 
    array(
     'escapeTitle' => false, 
     'class' => 'btn btn-default', 
     ) 
    ); 

對於引導按鈕的CSS,就像這樣:

echo $this->Html->link(
    'Login', 
    array('controller'=>'users', 'action'=>'login'), 
    array('class'=>'btn btn-default'); 
+0

嗨,這個問題是沒有這麼多的類,它的加入關閉進入鏈接,任何想法我可以做到這一點? – Syn

+0

@Syn我更新了,去''span class =「fa fa-user」aria-hidden =「true」>',用'escapeTitle'=> false,'參數 – Blag

+0

我認爲問題是事實上,它的鏈接標記,它將其作爲文本值而不是將其添加爲標記,因爲當我這樣做時會發生什麼,它會顯示或span,作爲按鈕內的文本。 – Syn